Descărcarea datelor de pe un server fără actualizare directă

Descărcarea datelor de pe un server fără actualizare directă

Pentru cei care nu știu, acum este la modă să folosim pagini supra-dinamice.
Adică paginile care primesc sau trimit date către server fără a fi repornite sunt practic invizibile pentru utilizator.





pentru aceasta există trei (și încă unul, dar mai mult despre el mai târziu) modul:
  • HttpRequest (ActiveX Microsoft.XMLHTTP pentru MSIE sau XMLHttpRequest pentru Firefox)
    MSIE 6.0+, Firefox 1.0+, Netscape 7+
  • Încărcarea manualului de php ca un script extern ( )
    MSIE 5.5+, Opera 7+
  • Folosind un iFrame invizibil (Nulfram)
    MSIE 5.5+, Opera 7+, Firefox 1.0+, Mozilla 0.9+, Netscape 7+






Iată un exemplu al lucrării tuturor acestor trei căi:

dar conținutul tuturor celor trei procesoare php:


toate cele trei metode au avantajele și dezavantajele lor.

XMLHttpRequest
+ are cea mai mare viteză de execuție
+ invizibil pentru utilizator (fără preloadere în bara de stare)
- Sunt acceptate numai MSIE 6.0+, Firefox și Netscape 7+
- Nu funcționează dacă procesarea ActiveX este dezactivată în MSIE
Încărcarea manualului de php ca un script extern
+ are o viteză de execuție bună
+ funcționează în MSIE 5.5+, Opera 7, Firefox 1.0+, Mozilla 0.9+, Netscape 7
- Nu funcționează în Opera 8 și Netscape 8
- preloader este afișat în browsere
Folosind un iFrame invizibil
+ funcționează în toate browserele
+ după ce fișierul php de cerere poate funcționa independent
- are o viteză de execuție lentă
- poluează istoricul browserului
- Preloaderele sunt afișate în bara de stare a browserelor.

În ceea ce privește a treia metodă, ea dispare practic din lupta pentru supraviețuire, dar primele două au de asemenea și un mare dezavantaj - non-roskbauzernost.
Din fericire există o cale de ieșire, și anume metoda care combină primele două metode și rulează la viteze mari în toate browserele!
Această metodă - # 91; b] Subsys_JsHttpRequest # 91; / b]. dezvoltat de laboratorul dk.

pagina dezvoltatorului, posveschonnoy această metodă nu este exemple foarte bune, o mulțime de exces, este dificil să se simtă esența. cu toate acestea, să-l merită, dacă doriți să utilizați toate caracteristicile unui set de biblioteci pentru a eluda toate glitches și bug-uri.
Am simplificat totul la exemplul nostru. Puteți vedea aici - http: # 047; # 047; alx.com.ru/stats/dataload/test.html.

iată ce altceva se află în fișierul test.html:

dar conținutul fișierului php care procesează solicitarea:


+ dosarul dk_JsHttpRequest. în care există biblioteci JS și PHP.

vrei să spui dezvoltarea soluției Subsys_JsHttpRequest sau ideea ca un întreg?


In timp ce acest lucru este doar un scurt exemplu de care sunt multe. Este comun pentru mai mult decât real terminat cu un proiect de sursă completă, și nu doar „noi poluchilli linie.“ Oamenii nu știu cu adevărat ce să fac poate cineva JS dă un cod care este apoi pe eval care se parses atunci și mulți oameni nu știu că prefixul XML nu este nimic în valoare Cum de a face curba XML nu foarte dicționar pentru protocolul său, pentru a lucra cu el pe client.

DOM (pentru XML mai bun XPath, aceasta este pentru editare de conținut) nu trebuie să clarifice, aici principalul lucru este de a da o sămânță, căutătorul va găsi ceea ce este necesar.

dacă nu este confundată, aceasta este singura modalitate de a repara fișierele fără a reîncărca pagina.


Completarea formularului este în continuare pe utilizator, doar trimite-l la un cadru specific, indiferent de ce.

Descărcarea datelor de pe un server fără actualizare directă

Spuneți-mi, cum pot face acest script să primească date de la server, de exemplu, în fiecare secundă?
și anume în acest caz, datele de pe server se încarcă la apăsarea butonului.
Și dacă e un chat. trebuie să descărcați mesaje noi destul de des. Cum se poate face acest lucru?
Înțeleg că aveți nevoie de o funcție care va descărca numai datele de pe server.
Voi folosi Subsys_JsHttpRequest.

Descărcarea datelor de pe un server fără actualizare directă

uh. Ei bine, pentru tot ce există funcții corespunzătoare. în acest caz, puteți utiliza setInterval () sau setTimeout (), dar acest lucru nu va fi suficient pentru a vă scrie un chat. degetele-up







Trimiteți-le prietenilor: