Objek Lokasi JavaScript menyediakan akses kepada komponen URL semasa. Orang boleh menganggap objek ini sebagai tetingkap baca sahaja di lokasi semasa.
Objek Lokasi mempunyai dua sifat yang sering dikelirukan dengan: hos dan nama hos.
Atribut hos mengembalikan nama hos, nombor port dan protokol URL semasa. Contohnya, jika URL semasa ialah "http://example.com:8080/path/to/page.html", nilai hos ialah "example.com:8080".
Terdapat juga beberapa kelebihan untuk menggunakan location.host berbanding location.hostname.
Pertama, ia lebih khusus. Jika anda memerlukan nombor port atau protokol, anda boleh memastikan sifat hos akan mengembalikannya.
Kedua, lebih ringkas. Jika anda hanya memerlukan nama hos, anda boleh menggunakan atribut nama hos yang lebih pendek. Tetapi jika anda juga memerlukan nombor port atau protokol, anda boleh menggunakan sifat hos dan mendapatkan semua maklumat sekaligus.
Ketiga, ia lebih berorientasikan masa depan. Jika komponen URL baharu ditambahkan, ia mungkin disertakan dalam sifat hos. Ini tidak semestinya berlaku dengan atribut nama hos.
Sebaliknya, atribut nama hos hanya mengembalikan bahagian nama hos URL semasa. Contohnya, jika URL semasa ialah "http://example.com:8080/path/to/page.html", nilai nama hos ialah "example.com".
Menggunakan location.hostname mempunyai beberapa kelebihan berbanding location.host.
Pertama sekali, ia lebih mudah dibaca. Apabila anda melihat URL, anda biasanya lebih berminat dengan nama hos daripada nombor port atau protokol.
Kedua, lebih konsisten. Nama hos ialah bahagian URL yang diperlukan, manakala nombor port dan protokol adalah pilihan. Ini bermakna tidak semua URL mempunyai atribut hos, tetapi semuanya mempunyai nama hos.
Ketiga, ia lebih anjal. Jika anda menukar nombor port atau protokol URL, nama hos akan tetap sama. Ini tidak berlaku dengan sifat hos.
Secara umum, melainkan anda memerlukan nombor port atau protokol secara khusus, anda harus menggunakan location.hostname.
Alasannya ialah nama hos ialah bahagian URL yang "boleh dibaca manusia", manakala atribut hos juga termasuk nombor port dan protokol. Selalunya, maklumat tambahan ini tidak diperlukan.
Namun, terdapat beberapa pengecualian. Contohnya ialah jika anda perlu membina URL baharu menggunakan URL semasa sebagai asas. Dalam kes ini, anda perlu menggunakan location.host untuk mengekalkan nombor port dan protokol.
Pengecualian lain adalah jika anda menggunakan pemendek URL. Dalam kes ini, anda perlu menggunakan location.host untuk mengekalkan nama hos URL asal.
Perbezaan antaraJadual berikut menyerlahkan perbezaan utama antara location.host dan location.hostname dalam JavaScript -
Agak asas | Lokasi.Hos | lokasi.nama hos |
---|---|---|
Definisi | Atribut hos mengembalikan nama hos, nombor port dan protokol URL semasa | Sebaliknya, atribut nama hos hanya mengembalikan bahagian nama hos URL semasa |
Contoh | Jika URL semasa ialah "http://example.com:8080/path/to /page.html", nilai hos ialah "example.com:8080 | Jika URL semasa ialah "http://example.com:8080/path /to/page.html", nilai nama hos ialah "example.com". |
Bila nak guna? | Jika anda memerlukan nombor port atau protokol secara khusus, anda harus menggunakan location.host. | Melainkan anda memerlukan nombor port atau protokol secara khusus, anda harus menggunakan location.hostname. |
Kebolehbacaan | Sifat hos juga termasuk nombor port dan protokol, menjadikannya kurang boleh dibaca. | Nama hos ialah bahagian URL yang "boleh dibaca manusia". |
Dalam kebanyakan kes, anda harus menggunakan location.hostname dan bukannya location.host. Ia lebih mudah dibaca, lebih konsisten dan lebih berdaya tahan. Walau bagaimanapun, terdapat beberapa pengecualian, seperti apabila anda perlu membina URL baharu atau menggunakan pemendek URL.
Atas ialah kandungan terperinci Perbezaan antara location.host dan location.hostname dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!