JavaScript ialah bahasa skrip bahagian klien, yang biasanya dibenamkan dalam fail HTML Ia dijalankan pada bahagian penyemak imbas, dan komunikasi jauh dengan pelayan memerlukan beberapa cara teknikal. Dalam artikel ini, kami akan meneroka cara JavaScript mendayakan komunikasi jauh.
1. AJAX Technology
AJAX ialah singkatan daripada Asynchronous JavaScript dan XML Ia adalah teknologi yang digunakan untuk mencipta aplikasi web dinamik. Melalui AJAX, anda boleh mengemas kini sebahagian daripada kandungan halaman tanpa menyegarkan keseluruhan halaman, mencapai komunikasi tak segerak dengan pelayan.
Langkah-langkah untuk menggunakan AJAX adalah seperti berikut:
Objek XMLHttpRequest ialah teras melaksanakan operasi AJAX dan boleh menghantar permintaan kepada pelayan dan menerima respons. Dalam JavaScript, anda boleh mencipta objek XMLHttpRequest melalui kod berikut:
var xhr = new XMLHttpRequest();
Menggunakan objek XMLHttpRequest untuk menghantar permintaan memerlukan penggunaan open () kaedah dan kaedah hantar(). Kaedah open() digunakan untuk menetapkan jenis permintaan, URL dan sama ada untuk memproses permintaan secara tidak segerak. Kaedah send() digunakan untuk menghantar permintaan kepada pelayan, dan badan permintaan boleh dihantar sebagai parameter.
xhr.open('GET', '/path/to/file', true); xhr.send();
Secara amnya, pelayan akan mengembalikan dokumen XML, JSON atau HTML. Selepas menerima respons, anda perlu menggunakan atribut responseText atau atribut responseXML untuk mendapatkan kandungan respons.
xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText); } };
2. Teknologi WebSocket
WebSocket ialah protokol untuk komunikasi dupleks penuh pada satu sambungan TCP. Penghantaran data masa nyata boleh dicapai menggunakan WebSocket, dan prestasinya adalah setara dengan sambungan TCP asli, menjadikan komunikasi antara pelayan dan pelanggan lebih pantas dan cekap.
Langkah-langkah untuk menggunakan WebSocket adalah seperti berikut:
Objek WebSocket boleh dibuat dengan kod berikut:
var ws = new WebSocket('ws://example.com/ws');
Selepas objek WebSocket dibuat, anda perlu menyambung ke pelayan. Selepas sambungan berjaya, acara terbuka akan dicetuskan.
ws.addEventListener('open', function (event) { console.log('Connection established'); });
Objek WebSocket boleh menghantar mesej ke pelayan melalui kaedah send(). Mesej yang diterima boleh dikendalikan oleh acara onmessage.
ws.addEventListener('message', function (event) { console.log(event.data); }); ws.send('Hello, WebSocket');
Gunakan kaedah close() untuk menutup sambungan WebSocket.
ws.close();
3. Perbandingan antara XMLHttpRequest dan WebSocket
Kedua-dua XMLHttpRequest dan WebSocket boleh digunakan untuk berkomunikasi dengan pelayan, tetapi terdapat beberapa perbezaan di antara mereka.
XMLHttpRequest adalah berdasarkan protokol HTTP dan sambungan perlu diwujudkan semula setiap kali permintaan dihantar. WebSocket adalah berdasarkan protokol TCP Setelah sambungan diwujudkan, komunikasi boleh dikekalkan.
XMLHttpRequest menghantar data dengan menghantar permintaan kepada pelayan dan kemudian menerima respons. WebSocket melakukan penghantaran data masa nyata melalui sambungan yang berterusan.
XMLHttpRequest boleh menyokong pelbagai protokol, termasuk HTTP dan HTTPS. WebSocket hanya boleh menyokong protokol WebSocket.
XMLHttpRequest biasanya menggunakan format XML atau JSON untuk penghantaran data. WebSocket boleh menghantar sebarang jenis data, termasuk teks, binari, JSON, dsb.
4. Ringkasan
JavaScript boleh mencapai komunikasi jauh dengan pelayan melalui teknologi AJAX dan WebSocket. AJAX sesuai untuk kawalan berkala dan pemprosesan acara masa nyata. WebSocket sesuai untuk sebarang senario komunikasi masa nyata, terutamanya senario yang memerlukan kependaman rendah dan konkurensi tinggi. Kedua-duanya mempunyai kelebihan dan kekurangan masing-masing, dan anda perlu memilih teknologi yang sesuai mengikut senario tertentu.
Atas ialah kandungan terperinci Bolehkah javascript mencapai komunikasi jauh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!