Primirea datelor de pe server fără reîncărcarea paginii

Diferitele modalități de accesare a serverului fără reîncărcarea paginii sunt denumite, de obicei, termenul general "Remote Scripting". Aici vor fi adunate și descrise avantajele și dezavantajele mai multor abordări cele mai comune.







IFRAME: Încărcarea datelor într-un cadru ascuns

Metoda cea mai simplă și cea mai utilizată este folosirea unui cadru ascuns, în care vor fi încărcate datele. În mod obișnuit, acest cadru este implementat utilizând elementul IFRAME.

Nu puteți utiliza afișarea: nici una pentru a ascunde cadrul - Opera nu vă va permite să accesați un astfel de cadru. (Soluție alternativă de lucru - poziție: absolută; vizibilitate: ascuns; lățime: 0px; înălțime: 0px ;.)
În acest caz, solicitarea și datele sunt primite într-un mod asincron, cel mai adesea cu ajutorul unei funcții de apel invers definită în contextul paginii principale:

Când un script are nevoie să obțină niște date de la server, acesta dă comanda pentru a încărca pagina în această iframe:

Puteți utiliza, de asemenea, o formă invizibilă cu target = "buffer". Aceasta va permite transferul de date către server folosind metoda POST.

avantaje

  • Evidenta implementare: doar IFRAME este primul lucru care vine în minte.
  • Abilitatea de a trimite date în iFrame forme arbitrare (inclusiv - a creat dinamic), care rezolvă problemele cu codificarea datelor (toate transcodare efectuează un browser).

deficiențe

  • Înfundarea istoricului browserului.
  • Probleme legate de compatibilitatea cu browserul încrucișat: fiecare browser are caracteristici proprii și extrem de instabile atunci când lucrează cu IFRAME.
  • Cheltuieli mari de memorie (de fapt, fiecare IFRAME este un browser separat mic).
  • Dificultăți în Opera: puteți accesa doar conținutul IFRAME, atunci când a cărui creare a fost specificat src atribut, care coincide cu numele site-ul curent.






XMLHttpRequest și ActiveX Microsoft.XMLHTTP

avantaje

  • Componentele sunt utilizate în scopul propus.
  • Economii mari de memorie comparativ cu IFRAME.

deficiențe

  • Soluțiile sunt specifice pentru IE și Mozilla / Firefox (IE nu funcționează deloc cu ActiveX oprit), Opera suportă doar suportul de la versiunea 8.

SCRIPT: Încărcarea datelor printr-o etichetă SCRIPT generată dinamic

avantaje

  • Compatibilitate bună cu browserul încrucișat. Cod identic și metodă în diferite browsere (inclusiv - funcționează în Opera).
  • Economisiți memoria în comparație cu IFRAME.
    • Nu strica istoria.
    • Metoda nu se bazează pe anumite browsere și funcționează în IE5.0 +, Mozilla 1.7+, Firefox 1.0+ și Opera 7.3+ (aici „+“ înseamnă „în această și mai noi versiuni“). În plus, nu utilizează nici ActiveX, nici IFRAME.

deficiențe

  • Imposibil de trimis o mulțime de date pe server (limită pe lungimea QUERY_STRING).
  • Este necesar să lucrați cu Unicode în scriptul serverului (în PHP există o extensie iconv pentru acest lucru).
  • Browsere au de lucru diferite, cu dinamic creat tag-uri SCRIPT, astfel încât soluția cross-browser-ul conține un număr de hacks.

JsHttpRequest: Toate cele de mai sus într-o singură bibliotecă convenabilă

avantaje

  • Complet compatibil cu interfața XMLHttpRequest.
  • Compatibilitate compatibilă cu browserul.
  • Prezența interfeței simplificate.
  • Abilitatea de a încărca dinamic fișiere pe server.
  • Selectați automat metoda de descărcare optimă (XMLHttpRequest, script sau formular), în funcție de parametrii interogării.

deficiențe

Exemple de utilizare a scriptului la distanță







Articole similare

Trimiteți-le prietenilor: