Tidak ada keraguan bahwa JavaScript. operasi pengguna. Terima kasih, HTML5 memberi kami mekanisme multi -utusan.
1. Kelas Pekerja 1. Metode Pendahuluan(1) Membangun fungsi pekerja baru (arg): Parameter mewakili file JS di mana kode yang ingin Anda jalankan, seperti 'myworker.js', dan konstruktor tentu saja mengembalikan instance dari kelas pekerja
(2) Worker.postmessage (pesan): Metode ini menunjukkan bahwa mengirim pesan dari utas utama ke sub -threads atau sub -thread mengirim pesan ke utas utama.
(3) Ada juga acara pesan pada pekerja.
Anda dapat melihat bahwa API dari kelas Woker cukup ringkas.
//main.html <!!!! </head> <Div id = out> </div> <input type = name teks = id = txt> <tombol id = btn> kirim </button> <script type = text/javascript> var out = document.geteLementById (Out); Script> </html> // thread1.jsonmessage tion (event) {var res = event.data+tampan! ;
Ketika saya memasukkan kotak teks besar ~ beruang klik tombol pengiriman, akan ada efek berikut
Analisis dan Analisis Sederhana, saya membuat pekerja instance pekerja di utas utama oleh Trip1.js. .js lakukan bagaimana dengan itu? Ya, dia mendengarkan insiden pesan. , Lalu kirimkan kembali. Utas utama juga mendengarkan acara pesan pekerja, sehingga pesan akan dipicu di masa lalu, dan konten pesan ditampilkan di Div, sehingga efek di atas terlihat.
Mungkin Anda akan menggunakan ini? Ini benar -benar tidak berguna di sini. Operasi, karena kompleksitasnya adalah O (1) (haha, dia sedang mempelajari algoritma baru -baru ini!), Tetapi jika bukan karena operasi yang sederhana? Keuntungan dari metode ini adalah seberapa rumit sub -thread Anda, Anda tidak akan menghentikan utas utama
Guru LU akan dapat memanggil pekerja baru () untuk membuat sub -thread baru di sub -thread memeriksa dokumen resmi dan menemukan bahwa tidak ada deskripsi yang relevan.
Mari kita lihat contoh memanggil beberapa sub -thread di utas utama:
//main.html <!!!! </head> <Div id = out> </div> <input type = name teks = id = txt> <tombol id = btn> kirim </button> <script type = text/javascript> var out = document.geteLementById (Keluar); .postmessage (postdata);}, false); out.innerText = e.data;}, false); </script> </body> </html> // thread1.jsonMessage = function (event) {var res = event.data+tampan! ; ;
Utas utama membutuhkan dua utas untuk menyelesaikan satu tugas. Dengan hasil akhir, ini ditampilkan di halaman.
File JS lainnya dapat diperkenalkan di sub -thread dan kemudian dipanggil, seperti contoh sisi bawah.
//main.html <!!!! </head> <Div id = out> </div> <input type = name teks = id = txt> <tombol id = btn> kirim </button> <script type = text/javascript> var out = document.geteLementById (Keluar); );}, False) ;; res = handler (event.data); }
Dapat dilihat bahwa thread1.js kami tidak memiliki file yang disebut tools.js, tetapi mengimpor file JS melalui ImportScripts (), dan kemudian Anda dapat memanggil metode yang terbuka.
Kedua, kelas pekerja bersamaInti dari SharedWorker terletak pada Share.
Contoh langsung untuk dibahas.
Cara menggunakannya://main.html <!!!!! <<omead> <itement> Pekerja bersama: Demo 1 </iteme> </adep Sharedworker ('Shared.js'); Data;} </script> </body> </html> // shared.jsonConnect = function (e) {var port = e.ports [0];
Ini adalah contoh dari W3C.
<! '' Shared.js '); , false) ;; // Catatan: Catatan: Butuh ini saat menggunakan AddEventListener Worker.postmessage ('ping'); e.ports [0]; E.Target.PostMessage ('pong');
Metode pertama adalah mendengarkan acara pesan dengan menggunakan pegangan acara. Mereka berbeda dari pekerja.
Jadi bagaimana SHAREDWorker berbagi data? Silakan lihat contoh berikut.
// Main1 dan Main2 SOM <! = Nama teks = id = txt> <tombol id = get> get </atton> <tombol id = set> setton> <script> var pekerja = pekerja baru bersama ('shared.js'); (Get '); ) {LOG.InNERTEXT = E.Data;}, false); nilai), false); ) {var port = e.ports [0]; }}
Analisis di sini, kami memasukkan data di kotak teks Main1.html, klik Set, lalu klik metode GET di Main2.html untuk mendapatkan data yang kami atur di Main1.html Single Case, sama seperti kelas statis di Java, tidak peduli berapa banyak berita, sebenarnya hanya ada satu, sehingga utas kami yang berbeda dapat berbagi data di SharedWorker. Ini gambarnya.
Akhirnya, mari kita ringkas, pekerja dan pekerja bersama tidak memiliki gantung, yaitu, memindahkan pekerjaan di depan panggung untuk melakukannya di belakang layar tanpa mengganggu pekerjaan di depan panggung. Ini adalah sepuluh menit yang disebut di atas panggung dan sepuluh tahun dari panggung. Letakkan turun, hanya sisi terbaik dari sisi terbaik Anda yang ada di atas panggung, sepuluh menit sudah cukup!