Das Location-Objekt von JavaScript bietet Zugriff auf die aktuelle URL-Komponente. Man kann sich dieses Objekt als schreibgeschütztes Fenster am aktuellen Standort vorstellen.
Das Location-Objekt verfügt über zwei Eigenschaften, die oft verwechselt werden: Host und Hostname.
Das Host-Attribut gibt den Hostnamen, die Portnummer und das Protokoll der aktuellen URL zurück. Wenn die aktuelle URL beispielsweise „http://example.com:8080/path/to/page.html“ lautet, lautet der Wert von host „example.com:8080“.
Die Verwendung von location.host gegenüber location.hostname bietet auch einige Vorteile.
Erstens ist es spezifischer. Wenn Sie eine Portnummer oder ein Protokoll benötigen, können Sie sicher sein, dass die Host-Eigenschaft diese zurückgibt.
Zweitens prägnanter. Wenn Sie nur den Hostnamen benötigen, können Sie das kürzere Hostnamen-Attribut verwenden. Wenn Sie aber auch die Portnummer oder das Protokoll benötigen, können Sie die Host-Eigenschaften nutzen und alle Informationen auf einmal abrufen.
Drittens ist es zukunftsorientierter. Wenn eine neue URL-Komponente hinzugefügt wird, kann diese in die Host-Eigenschaft aufgenommen werden. Dies ist beim Hostnamen-Attribut nicht unbedingt der Fall.
Andererseits gibt das Hostnamen-Attribut nur den Hostnamen-Teil der aktuellen URL zurück. Wenn die aktuelle URL beispielsweise „http://example.com:8080/path/to/page.html“ lautet, lautet der Wert des Hostnamens „example.com“.
Die Verwendung von location.hostname hat gegenüber location.host einige Vorteile.
Erstens ist es besser lesbar. Wenn Sie sich eine URL ansehen, interessiert Sie normalerweise mehr der Hostname als die Portnummer oder das Protokoll.
Zweitens, konsistenter. Der Hostname ist ein erforderlicher Teil der URL, während die Portnummer und das Protokoll optional sind. Das bedeutet, dass nicht alle URLs ein Host-Attribut haben, aber alle einen Hostnamen.
Drittens ist es elastischer. Wenn Sie die Portnummer oder das Protokoll der URL ändern, bleibt der Hostname derselbe. Dies ist bei Host-Eigenschaften nicht der Fall.
Im Allgemeinen sollten Sie location.hostname verwenden, es sei denn, Sie benötigen speziell eine Portnummer oder ein Protokoll.
Der Grund dafür ist, dass der Hostname der „für Menschen lesbare“ Teil der URL ist, während das Host-Attribut auch die Portnummer und das Protokoll enthält. In den meisten Fällen sind diese zusätzlichen Informationen nicht erforderlich.
Es gibt jedoch einige Ausnahmen. Ein Beispiel wäre, wenn Sie eine neue URL auf der Grundlage der aktuellen URL erstellen müssen. In diesem Fall müssen Sie location.host verwenden, um die Portnummer und das Protokoll beizubehalten.
Eine weitere Ausnahme ist die Verwendung eines URL-Shorteners. In diesem Fall müssen Sie location.host verwenden, um den Hostnamen der ursprünglichen URL beizubehalten.
Unterschied zwischenDie folgende Tabelle hebt die wichtigsten Unterschiede zwischen location.host und location.hostname in JavaScript hervor -
Relativ einfach | Location.Host | location.hostname |
---|---|---|
Definition | Das Host-Attribut gibt den Hostnamen, die Portnummer und das Protokoll der aktuellen URL zurück | Andererseits gibt das Hostnamen-Attribut nur den Hostnamen-Teil der aktuellen URL zurück |
Beispiel | Wenn die aktuelle URL „http://example.com:8080/path/to /page.html“ lautet, ist der Wert von host „example.com:8080 | Wenn die aktuelle URL „http://example.com:8080/path /to/page.html“ lautet, ist der Wert des Hostnamens „example.com“. |
Wann verwenden? | Wenn Sie speziell eine Portnummer oder ein Protokoll benötigen, sollten Sie location.host verwenden. | Sofern Sie nicht ausdrücklich eine Portnummer oder ein Protokoll benötigen, sollten Sie location.hostname verwenden. |
Lesbarkeit | Zu den Host-Eigenschaften gehören auch die Portnummer und das Protokoll, was die Lesbarkeit erschwert. | Der Hostname ist der „für Menschen lesbare“ Teil der URL. |
In den meisten Fällen sollten Sie location.hostname anstelle von location.host verwenden. Es ist besser lesbar, konsistenter und belastbarer. Es gibt jedoch einige Ausnahmen, beispielsweise wenn Sie eine neue URL erstellen oder einen URL-Shortener verwenden müssen.
Das obige ist der detaillierte Inhalt vonUnterschied zwischen location.host und location.hostname in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!