Ace udtrykte præcist:
> Hejsa
>
> For ikke så længe siden redede Birger min røv med dette fine
> script, der loader indhold fra andre sider ind i forskellige
> div's:
> <html>
> <head>
> <script type="text/javascript">
> function makeAjax(){
> var xmlHttp;
> try {
> xmlHttp = new XMLHttpRequest();
> }
> catch (e){
> try {
> xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
> }
> catch (e) {
> try {
> xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
> }
> catch (e) {
> alert("No AJAX!?");
> xmlHttp = null;
> }
> }
> }
> return xmlHttp;
> }
>
> function HentX( x) {
> var side = '';
> var divId = '';
> switch ( x) {
> case 1 :
> side = '
http://side1.html';
> divId = 'div1';
> break;
> case 2 :
> side = '
http://side2.html';
> divId = 'div2';
> break;
> case 3 :
> side = '
http://side3.html';
> divId = 'div3';
> break;
> //... indsæt selv så mange du har brug for
> default :
> side = '';
> }
> if ( side != ''){
> var xmlHttp = makeAjax();
> if ( xmlHttp != null) {
> xmlHttp.open( "GET", side, true);
> xmlHttp.onreadystatechange = function() {
> if ( xmlHttp.readyState == 4) {
> if ( xmlHttp.status == 200) {
> document.getElementById( divId).innerHTML=xmlHttp.responseText;
> }
> setTimeout( function() { HentX( x); }, 1000);
> }
> }
> xmlHttp.send(null);
> }
> }
> }
> setTimeout( function() { HentX( 1); }, 1000);
> setTimeout( function() { HentX( 2); }, 1000);
> setTimeout( function() { HentX( 3); }, 1000);
> //... indsæt selv flere som nødvendigt
> </script>
> </head>
> <body>
> <div id="div1"></div>
> <div id="div2"></div>
> <div id="div3"></div>
> </body>
> </html>
>
> Dette har dog imidlertig vist sig, at sænke load-tiden af selve
> siden hvori div'erne er, så jeg tænkte på om det er muligt, at
> udsætte denne funktion til efter siden er loadet helt færdig?
>
> Vh
> Ace
Det er næppe scriptet der sinker...
Men der ingenting at vise, får de første timeout aktiverer noget
indhold.
prøv
Hent( 1);
Hent( 2);
Hent( 3);
i slutningen, i stedet for at bruge timere...
Alternativet er at sætte dem i en onload - men jeg kan ikke se det
skulle være nødvendigt.
Hvis selve siden af en eller anden årsag er længe om at loade (hvis der
er mere indhold end det ovenstående), så den første ajax henter
indholdet inden siden er færdig, vil du få en fejl om at den div
indholdet skal indsætte i ikke findes.
Så måske er det under alle omstændigheder en god idé..
function Init() {
Hent( 1);
Hent( 2);
Hent( 3);
}
og
<body onload="Init();">
go så skal de tre linier selvfølgelig ikke også være der...
Håber det er forståeligt
Birger