[js] Technisch: wat doet parent.frames[i].location precies

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 05-09 21:08
Ik heb een Flash-menu, wat om de x seconden aan een Javascriptfunctie vraagt welke pagina geladen is in een bepaald frame:

JavaScript:
1
2
3
4
5
function get_url(target)
{
  var targetLocation =  parent.frames[target].location;
  return targetLocation.toString();
}


Nu gaat mijn site schokken als ik een pagina met deze Flash/Javascript-combinatie te lang open laat staan. Het blijkt dat dat precies gebeurt als Flash aan Javascript deze functie aanroep.

Nu is mijn vraag: weet iemand wat er technisch / onder de motorkap gebeurt als Javascript de functie parent.frames[target].location opvraagt? Wordt op de een of andere manier de pagina in parent.frames[target] geladen?

Het rare is namelijk dat de mate van schokken afhangt van de grootte van de pagina in parent.frames[target] (als het een grote pagina is met veel geinclude javascripts --> veel schokken, anders weinig).

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Je kan prima alles zelf opzoeken. Over javascript en de DOM is genoeg informatie te vinden:
var
parent
frames
location
toString

Volgens mij was dat niet heel moeilijk ;)

Acties:
  • 0 Henk 'm!

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 05-09 21:08
mithras schreef op donderdag 06 maart 2008 @ 13:36:
Je kan prima alles zelf opzoeken. Over javascript en de DOM is genoeg informatie te vinden:
var
parent
frames
location
toString

Volgens mij was dat niet heel moeilijk ;)
Je begrijpt me verkeerd. Ik weet heel goed wat al die functies doen. Maar ik vraag me af wat er op de achtergrond, in de Javascript-engine precies gebeurt.

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Ah, ok; ik heb je verkeerd begrepen :) Ik zou het niet zeker weten, maar als je kijkt naar het example van window.frames, zie je dat een frame[i] object het gehele document object van die pagina bevat (zie de frames[i].document.body.style.background property).

Ik denk dus dat de gehele DOM tree inderdaad met een window.frames wordt opgehaald. Zeker niet efficient inderdaad; bij grotere pagina's dus een stuk hogere load. Wat een betere methode is weet ik niet, helaas ben ik geen js goeroe...

Acties:
  • 0 Henk 'm!

  • Duroth
  • Registratie: Juni 2007
  • Laatst online: 27-04-2016

Duroth

No rest for the tweaked

Even een ongegronde hersenkronkel... Waar jij waarschijnlijk naar op zoek bent, is de HREF property van het location object...

JavaScript:
1
2
3
4
5
function get_url(target)
{
  var targetLocation =  parent.frames[target].location.href;
  return targetLocation.toString();
}


Heeft dat enige invloed? Is maar gewoon een hersenkronkel, hoeft niet eens te werken, maar het proberen waard, lijkt me?

Acties:
  • 0 Henk 'm!

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 05-09 21:08
Duroth schreef op donderdag 06 maart 2008 @ 17:10:
Even een ongegronde hersenkronkel... Waar jij waarschijnlijk naar op zoek bent, is de HREF property van het location object...

JavaScript:
1
2
3
4
5
function get_url(target)
{
  var targetLocation =  parent.frames[target].location.href;
  return targetLocation.toString();
}


Heeft dat enige invloed? Is maar gewoon een hersenkronkel, hoeft niet eens te werken, maar het proberen waard, lijkt me?
Volgens mij zijn beide synoniemen van elkaar.
Pagina: 1