JavaScript Data Push terutama berkomitmen pada layanan dorong online WebApps. Kami tidak perlu secara aktif mendorong data dari server ke area lokal setiap saat, seperti server, untuk mengirim permintaan AJAX.
Sejarah Evolusi Push Data:
1. Protokol HTTP mudah untuk polling, menyimpan tautan, atau mengirimkan permintaan ke backend terus menerus melalui ujung depan
2. Setelah pembaruan H5, Websocket sangat meningkatkan kenyamanan mendorong data di kedua arah dan arah searah.
3. SSE (Acara Server-Send): Cara baru bagi server untuk mendorong data
COMET: Teknologi Push Server Berdasarkan Koneksi Panjang HTTP
Pelajaran ini memperkenalkan Comet: Teknologi Push Server berdasarkan koneksi HTTP Long, yang merupakan arsitektur aplikasi web. Server akan secara aktif mendorong data ke program klien dengan cara yang tidak sinkron (Loop Mati Permintaan AJAX) tanpa klien membuat permintaan eksplisit. Arsitektur Comet sangat cocok untuk aplikasi web yang digerakkan oleh acara, serta aplikasi yang membutuhkan kemampuan interaktif dan real-time yang kuat, seperti analisis pasar perdagangan saham, ruang obrolan dan game online versi web.
1. Mari pertama -tama lihat contoh paling sederhana dari data AJAX Request JSON:
index.html
<meta charset = "utf-8"> <script type = "text/javascript" src = "http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script> <script = "text/javascript"> $ .Ajax ({script> <script = "Text/Javascript"> $ .Ajax ({{script>: Text/text/Javascript "> $ .Ajax ({{{{{{script>: Text/Text/Javascript function (data) {console.log (data);}}); </script>data.php
<? header php ('tipe konten: aplikasi/json; charset = utf-8'); $ res = array ('sukses' => 'ok', 'teks' => 'Saya teks tes'); echo json_encode ($ res);?>Dengan cara ini, front-end dapat memperoleh data back-end dan mengeluarkannya. Mari kita simulasikan backend terus mendorong data ke frontend:
Salah satu caranya adalah dengan terus mengirim permintaan Ajax di loop ujung depan
2. Ajax di jQuery front-end terus-menerus mengirimkan permintaan:
index.html
<meta charset = "utf-8"> <script type = "text/javascript" src = "http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script> <script = "text/javascript"> function conn () {$. "json", function: data) {console.log (data); </script>data.php
<? header php ('tipe konten: aplikasi/json; charset = utf-8'); header ("cache-control: max-seage = 0"); // Setel No Cache Sleep (1); $ res = array ('Success' => 'OK', 'Text' => 'Saya teks tes'); echo json_encode ($ res);?>Namun, pemungutan suara koneksi seperti itu membuat limbah permintaan jaringan menjadi sangat jelas. Kami juga dapat membiarkan siklus server backend melalui hal ini, lihat contoh berikut
3. Ajax asli, server mendorongnya sesekali (loop backend, gunakan ob_flush () dan flush () untuk memuntahkan data)
data.php
<? php // header ('tipe konten: aplikasi/json; charset = utf-8'); header ("cache-control: max-seage = 0"); // Setel tidak ada cache $ i = 0; while ($ i <9) {$ i ++; // $ res = array ('sukses' => 'ok', 'text' => 'Saya adalah teks dari tes'); // echo json_encode ($ res); tidur (1); $ radom = rand (1.999); echo $ radom; echo '<br/>'; ob_flush (); // output cache, harus digunakan dengan flush (); // cache meludah ke browser}?>Frontend JS (JS asli mengimplementasikan AJAX dan output saat keadaan berubah) Referensi: //www.vevb.com/article/82085.htm
var getXmlHttpRequest = function () {if (window.xmlHttpRequest) {// browser Mainstream Menyediakan objek xmlhttpRequest baru mengembalikan xmlhttpRequest (); } lain jika (window.activexObject) {// Versi yang lebih rendah dari browser IE tidak menyediakan objek xmlhttpRequest // jadi Anda harus menggunakan implementasi spesifik dari IE browser ActivexObject Return new ActiveXObject ("microsoft.xmlhttpRequest"); }}; var xhr = getxmlHttpRequest (); xhr.onreadystatechange = function () {console.log (xhr.readystate); if (xhr.readystate === 3 && xhr.status === 200) {// Jalankan operasi setelah akuisisi yang berhasil // data ada di xhr.responsetext console.log (xhr.responsetext); }}; xhr.open ("get", "data.php", true); xhr.send ("");Di atas adalah semua tentang artikel ini, saya harap akan sangat membantu bagi semua orang untuk mempelajari pemrograman JavaScript.