HighDots Forums  

preloader + AJAX + "altre finezze"

Javascript (Italian) Il linguaggio JavaScript (it.comp.lang.javascript)


Discuss preloader + AJAX + "altre finezze" in the Javascript (Italian) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
vox
 
Posts: n/a

Default preloader + AJAX + "altre finezze" - 11-12-2007 , 04:10 AM






ciao a tutti,
scusate se saro' un po' lungo :P
prendendo come esempio questo sito:

http://download.breakbeat.co.uk/Defa...earch=pendulum

(cliccare su una qualsiasi delle copertine dei cd)

quello che devo fare e':

1) FORZARE il caricaramento del contenuto di una pagina web (html + ogni
altra cosa contenuta comprese immagini) con ajax e scriverlo dentro un
DIV con id specificato

2) scrivere degli "href" tipo <a href="pagina1.html">pagina1</a> ma fare
in modo che, anziche' andare "veramente" alla pagina richiesta, venga
lanciata la funzione di cui al punto (1)

3) usare un preloader tipo il sito che ho linkato sopra, che quindi
appaia quando comincia il caricamento e finisca SOLO se il caricamento
e' completato (a proposito, funziona anche con le immagini o serve
scrivere una funzione preposta?)

al momento ho una funzioncina per il caricamento di pagine web:

function GetXmlHttpObject() {
var objXMLHttp=null;
if (window.XMLHttpRequest) {
objXMLHttp=new XMLHttpRequest();
} else if (window.ActiveXObject) {
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
return objXMLHttp;
}

function load_page(url_to_open,id,param) {
var xmlHttp=GetXmlHttpObject();
var url=url_to_open;
url=url+"?sid="+Math.random()+'&'+param;
xmlHttp.onreadystatechange = function(){
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
document.getElementById(id).innerHTML=xmlHttp.resp onseText;
}
}
xmlHttp.open("GET",url,true);
xmlHttp.send("");
}

...che va, solo ke non carica pagine web esterne al sito in uso!
vorrei quindi anche fare in modo che "url_to_open" possa essere
indifferentemente una pagina web esterna o interna al sito.

qualche idea?
grz a tutti

--
vox

Reply With Quote
  #2  
Old   
vox
 
Posts: n/a

Default Re: preloader + AJAX + "altre finezze" - 11-12-2007 , 04:20 AM






dimenticavo...

se provo a caricare una pagina web esterna al sito in uso ottengo questo
errore!

Errore: uncaught exception: Permesso negato al metodo di chiamata
XMLHttpRequest.open

:-/

--
vox

Reply With Quote
  #3  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: preloader + AJAX + "altre finezze" - 11-12-2007 , 04:37 AM



Il Mon, 12 Nov 2007 10:10:26 +0100, vox ha scritto:

Quote:
..che va, solo ke non carica pagine web esterne al sito in uso!
vorrei quindi anche fare in modo che "url_to_open" possa essere
indifferentemente una pagina web esterna o interna al sito.
scordatelo ... devi caricare una pagina server-side *del tuo sito* e
*server-side* recuperare la pagina appartenente a un dominio diverso.
http://www.mozilla.org/projects/secu...me-origin.html

--
"e mai che mi sia venuto in mente
di essere più ubriaco di voi
di essere molto più ubriaco di voi"
F.D.A.


Reply With Quote
  #4  
Old   
vox
 
Posts: n/a

Default Re: preloader + AJAX + "altre finezze" - 11-12-2007 , 04:42 AM



Cristiano Larghi ha scritto:

Quote:
scordatelo ... devi caricare una pagina server-side *del tuo sito* e
*server-side* recuperare la pagina appartenente a un dominio diverso.
http://www.mozilla.org/projects/secu...me-origin.html
ok ^_^

questa la risolvo con una chiamata php, recupero il contenuto e lo
skiaffo in innerHTML

e scusa l'insistenza ma... per il resto (decisamente + importante) sai
darmi qualche consiglio?

grz!

--
vox


Reply With Quote
  #5  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: preloader + AJAX + "altre finezze" - 11-12-2007 , 04:58 AM



Il Mon, 12 Nov 2007 10:42:34 +0100, vox ha scritto:

Quote:
e scusa l'insistenza ma... per il resto (decisamente + importante) sai
darmi qualche consiglio?
così al volo direi di no, ciò che chiedi è una intera pagina o
applicazione, non un suggerimento...

Fai un po' di test e fai domande più specifiche.

--
"Run rabbit run
dig that hole, forget the sun
and when at last the work is done
don't sit down, it's time to dig another one"
P.F.


Reply With Quote
  #6  
Old   
vox
 
Posts: n/a

Default Re: preloader + AJAX + "altre finezze" - 11-12-2007 , 05:14 AM



Cristiano Larghi ha scritto:

Quote:
Il Mon, 12 Nov 2007 10:42:34 +0100, vox ha scritto:

e scusa l'insistenza ma... per il resto (decisamente + importante) sai
darmi qualche consiglio?

così al volo direi di no, ciò che chiedi è una intera pagina o
applicazione, non un suggerimento...

Fai un po' di test e fai domande più specifiche.
si dunque,
di prove ne sto facendo assai, in linea di principio non riesco a fare
in modo che il preloader scompaia SOLO se la pagina e' effettivamente e
completamente caricata.

sul body ho:

<div id="preloader"><img src="images/ajax-loader.gif" /></div>

che ha un display:none di predefinito.

sull'href devo lanciare la funzione di (pre)load che deve:
1) mostrare il preloader
2) caricare la pagina richiesta
3) verificare se la pagina e' completamente caricata
4) nascondere il preloader

con la funzione che ho postato prima piu' un'altra piccola riesco a fare
i punti 1,2,4

qualcosa tipo:

function goTo(url) {

// svuoto il div-content
document.getElementById('content').innerHTML = '';

// mostro il div-preloader ( -- punto1 --)
obj = document.getElementById('preloader');
obj.style.display = 'block';

// lancio il caricamento della pagina ( -- punto2 --)
load_page(url,'content','');

// nascondo il div-preloader ( -- punto4 --)
setTimeout("obj.style.display = 'none'",100);
// oppure: obj.style.display = 'none';
}

il punto e' che "nascondo il div-preloader" avviene prima che la pagina
sia stata caricata e non so proprio come fare a forzare "nascondo il
div-preloader" solo a caricamento avvenuto!
mi manca il punto3 insomma :-/

--
vox



Reply With Quote
  #7  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: preloader + AJAX + "altre finezze" - 11-12-2007 , 05:24 AM



Il Mon, 12 Nov 2007 11:14:27 +0100, vox ha scritto:

Quote:
il punto e' che "nascondo il div-preloader" avviene prima che la pagina
sia stata caricata e non so proprio come fare a forzare "nascondo il
div-preloader" solo a caricamento avvenuto!
immagino basti metterlo nell'onreadystatechange ...

--
"Ho smesso di fumare.
Vivrò una settimana di più.
E in quella settimana pioverà a dirotto"
W.A.


Reply With Quote
  #8  
Old   
vox
 
Posts: n/a

Default Re: preloader + AJAX + "altre finezze" - 11-12-2007 , 05:54 AM



Cristiano Larghi ha scritto:

Quote:
Il Mon, 12 Nov 2007 11:14:27 +0100, vox ha scritto:

il punto e' che "nascondo il div-preloader" avviene prima che la pagina
sia stata caricata e non so proprio come fare a forzare "nascondo il
div-preloader" solo a caricamento avvenuto!

immagino basti metterlo nell'onreadystatechange ...
dici qui?

if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
// nascondi preloader
document.getElementById(id).innerHTML=xmlHttp.resp onseText;
}

ho provato ieri, a volte sembra andare, altre volte il preloader
"sfarfalla" come un pazzo anche se la pagina si carica, e non capisco il
motivo poiche' non ci sono altri comandi tranne quelli che ho scritto
qui sul NG :-/

--
vox


Reply With Quote
  #9  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: preloader + AJAX + "altre finezze" - 11-12-2007 , 06:05 AM



Il Mon, 12 Nov 2007 11:54:56 +0100, vox ha scritto:

Quote:
dici qui?


--
"E' l' ignoranza che crea l'intolleranza
di gente cieca e senza coscienza"
S.S.S.


Reply With Quote
  #10  
Old   
vox
 
Posts: n/a

Default Re: preloader + AJAX + "altre finezze" - 11-14-2007 , 03:49 PM



hola a tutti,
non sapendo se era il caso di aprire un nuovo post, per il momento lo
continuo qui :P

sono (quasi) riuscito a fare tutto, solo che, come ogni somaro di js che
vuole fare il passo + lungo della gamba, ho qualche cosa da ottimizzare
e nn so come!

a questo link c'e' la serie di funzioni che uso:

http://zooloo.mine.nu/js.txt

per prima cosa chiamo, tramite href, la funzione < goTo(url) >
da li', basta seguire il "giro" di chiamate a altre funzioni per capire
qual'e' il percorso.

il fatto e' questo che ho come l'impressione che potrei fare le stesse
cose, meglio e con piu' "eleganza"... ma nn so come.

ed inoltre di classi (semmai fosse questo il caso) nn ci capisco una
seppia :S


ps. inoltre a volte se aggiorno la pagina su IE6 ricevo un errore che nn
riesco a catturare poiche' IE nn ha un debugger come ff!

--
vox

Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.