2011-08-10 20 views
8

Alguien ha enumerado 535 maneras diferentes para volver a cargar una página en Javascript:535 Formas de volver a cargar la página con JavaScript: ¿cuáles son las consecuencias?

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

Por ejemplo:

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 

Tengo curiosidad por si alguien sabe cómo son tratados de manera diferente en el navegador - si uno actualiza la página pero caché de bustos, ¿o no según sea el caso?

+3

parece como si la mayoría de las formas involucran: cambiar directamente 'location', usando' location.assign', 'location.replace' y' location.reload'. El resto solo son formas duplicadas de acceder a los mismos valores. – zzzzBov

+6

Más como 3 formas ofuscadas 535 veces –

+0

Use window.location.reload() estándar si desea que funcione en todos los navegadores. – Gerben

Respuesta

6

Todos esos ejemplos son tratados de la misma manera por el navegador.

De hecho, la mayoría de ellos son solo formas diferentes de acceder a una variable en Javascript. Probablemente puedas escribir una lista similar con "XXX maneras diferentes de asignarle a una variable global el valor de otra variable global".

Por ejemplo: location.href, window.location.href, self,location.href, location['href'], window.location['href'], self.location['href'] apuntan al mismo valor exacto.

En la lista informados, las únicas dos maneras muy diferentes son éstos:

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

En los ejemplos que publicó, ninguna de las formas en realidad recarga la página si la ubicación tiene un hash. En la página vinculada hay cosas como 'location.reload()' aunque recargan la página independientemente. – Robert

5

location.reload() actúa como un envío de formulario (es decir, el que pasa todos los valores del formulario)

Cuestiones relacionadas