2011-08-10 6 views
8

Qualcuno ha elencato 535 modi diversi per ricaricare una pagina in Javascript:535 Modi per ricaricare la pagina con JavaScript - quali sono le conseguenze?

http://www.phpied.com/files/location-location/location-location.html

Per esempio:

location = location 
location = location.href 
location = window.location 
location = self.location 
location = window.location.href 
location = self.location.href 
location = location['href'] 
location = window['location'] 
location = window['location'].href 
location = window['location']['href'] 
location = window.location['href'] 
location = self['location'] 
location = self['location'].href 
location = self['location']['href'] 
location = self.location['href'] 
location.assign(location) 
location.replace(location) 
window.location.assign(location) 
window.location.replace(location) 
self.location.assign(location) 
self.location.replace(location) 
location['assign'](location) 
window.location['assign'](location) 
self['location'].assign(location) 
self['location']['assign'](location) 
self['location']['replace'](location) 
location.href = location 
location.href = self.location 
location.href = window.location.href 

Sono curioso di sapere se qualcuno sa come questi vengono trattati in modo diverso sul browser - se si aggiorna la pagina, ma busts cache - o no, a seconda dei casi?

+3

sembra che la maggior parte dei modi prevede: cambiare direttamente 'posizione', usando' location.assign', 'location.replace' e' location.reload'. Il resto sono solo modi duplicati per accedere agli stessi valori. – zzzzBov

+6

Più come 3 vie offuscate 535 volte –

+0

Usa lo standard window.location.reload() se vuoi che funzioni su tutti i browser. – Gerben

risposta

6

Tutti questi esempi sono trattati allo stesso modo dal browser.

In realtà, molti di questi sono solo modi diversi per accedere a una variabile in Javascript. Probabilmente potresti scrivere un elenco simile con "XXX modi diversi di assegnare una variabile globale al valore di un'altra variabile globale".

Ad esempio: location.href, window.location.href, self,location.href, location['href'], window.location['href'], self.location['href'] puntano tutti allo stesso identico valore.

Nell'elenco hai postato, gli unici due modi molto diversi sono questi:

location = location //asign the whole location object to the location global variable 
location = location.href //asign the string location.href to the location global variable 
+0

Negli esempi che ha pubblicato, nessuno dei modi in realtà ricarica la pagina se la posizione ha un hash. Nella pagina collegata ci sono cose come 'location.reload()' che però ricaricano la pagina a prescindere. – Robert

5

location.reload() agisce come una forma presentare (cioè passa tutti i valori di forma)