Hướng dẫn HTML

TRANG CHỦ HTML Giới thiệu HTML Trình chỉnh sửa HTML HTML cơ bản Phần tử HTML Thuộc tính HTML Tiêu đề HTML Đoạn văn HTML Kiểu HTML Định dạng HTML Trích dẫn HTML Nhận xét HTML Màu HTML HTML CSS Liên kết HTML Hình ảnh HTML HTML Favicon Bảng HTML Danh sách HTML Khối HTML & Nội tuyến Các lớp HTML Id HTML Khung nội tuyến HTML HTML JavaScript Đường dẫn tệp HTML Đầu HTML Bố cục HTML HTML đáp ứng Mã máy tính HTML Ngữ nghĩa HTML Hướng dẫn kiểu HTML Thực thể HTML Biểu tượng HTML Biểu tượng cảm xúc HTML Bộ mã HTML Mã hóa URL HTML HTML so với XHTML

Biểu mẫu HTML

Biểu mẫu HTML Thuộc tính biểu mẫu HTML Phần tử biểu mẫu HTML Các loại đầu vào HTML Thuộc tính đầu vào HTML Thuộc tính biểu mẫu nhập HTML

Đồ họa HTML

HTML Canvas HTML SVG

HTML Media

HTML Media Video HTML Âm thanh HTML Trình cắm HTML HTML YouTube

API HTML

Vị trí địa lý HTML Kéo / thả HTML Lưu trữ web HTML Nhân viên web HTML HTML SSE

Ví dụ HTML

Ví dụ HTML HTML Quiz Bài tập HTML Chứng chỉ HTML Tóm tắt HTML Khả năng truy cập HTML

Tham chiếu HTML

Danh sách thẻ HTML Thuộc tính HTML Thuộc tính toàn cầu HTML Hỗ trợ trình duyệt HTML Sự kiện HTML Màu HTML HTML Canvas HTML Audio / Video HTML Doctypes Bộ ký tự HTML Mã hóa URL HTML Mã HTML Lang Tin nhắn HTTP Phương thức HTTP Công cụ chuyển đổi PX sang EM Các phím tắt bàn phím

API nhân viên web HTML


Web worker là một JavaScript chạy trong nền, không ảnh hưởng đến hiệu suất của trang.


Web Worker là gì?

Khi thực thi các tập lệnh trong một trang HTML, trang sẽ không phản hồi cho đến khi tập lệnh kết thúc.

Web worker là một JavaScript chạy trong nền, độc lập với các tập lệnh khác, mà không ảnh hưởng đến hiệu suất của trang. Bạn có thể tiếp tục làm bất cứ điều gì bạn muốn: nhấp chuột, chọn thứ, v.v., trong khi nhân viên web chạy ở chế độ nền.


Hỗ trợ trình duyệt

Các số trong bảng chỉ định phiên bản trình duyệt đầu tiên hỗ trợ đầy đủ cho Web worker.

API
Web Workers 4.0 10.0 3.5 4.0 11.5

Ví dụ về nhân viên web HTML

Ví dụ dưới đây tạo một web worker đơn giản đếm số trong nền:

Thí dụ

Count numbers:


Kiểm tra hỗ trợ nhân viên web

Trước khi tạo nhân viên web, hãy kiểm tra xem trình duyệt của người dùng có hỗ trợ hay không:

if (typeof(Worker) !== "undefined") {
  // Yes! Web worker support!
  // Some code.....
} else {
  // Sorry! No Web Worker support..
}


Tạo tệp công nhân web

Bây giờ, hãy tạo nhân viên web của chúng tôi trong một JavaScript bên ngoài.

Ở đây, chúng tôi tạo một tập lệnh có giá trị. Tập lệnh được lưu trữ trong tệp "demo_workers.js":

var i = 0;

function timedCount() {
  i = i + 1;
  postMessage(i);
  setTimeout("timedCount()",500);
}

timedCount();

Phần quan trọng của đoạn mã trên là postMessage()phương thức - được sử dụng để đăng thông báo trở lại trang HTML.

Lưu ý: Thông thường web worker không được sử dụng cho các tập lệnh đơn giản như vậy, mà cho các tác vụ đòi hỏi nhiều CPU hơn.


Tạo một đối tượng Web Worker

Bây giờ chúng ta đã có tệp web worker, chúng ta cần gọi nó từ một trang HTML.

Các dòng sau sẽ kiểm tra xem công nhân đã tồn tại hay chưa - nó tạo một đối tượng công nhân web mới và chạy mã trong "demo_workers.js":

if (typeof(w) == "undefined") {
  w = new Worker("demo_workers.js");
}

Sau đó, chúng tôi có thể gửi và nhận tin nhắn từ nhân viên web.

Thêm trình xử lý sự kiện "onmessage" vào nhân viên web.

w.onmessage = function(event){
  document.getElementById("result").innerHTML = event.data;
};

Khi nhân viên web đăng thông báo, mã trong trình xử lý sự kiện sẽ được thực thi. Dữ liệu từ web worker được lưu trữ trong event.data.


Chấm dứt một nhân viên web

Khi một đối tượng web worker được tạo, nó sẽ tiếp tục lắng nghe các thông báo (ngay cả sau khi tập lệnh bên ngoài kết thúc) cho đến khi kết thúc.

Để chấm dứt nhân viên web và tài nguyên máy tính / trình duyệt miễn phí, hãy sử dụng terminate()phương pháp:

w.terminate();

Sử dụng lại Web Worker

Nếu bạn đặt biến worker thành không xác định, sau khi biến đó bị chấm dứt, bạn có thể sử dụng lại mã:

w = undefined;

Mã mẫu đầy đủ cho nhân viên web

Chúng tôi đã thấy mã Công nhân trong tệp .js. Dưới đây là mã cho trang HTML:

Thí dụ

<!DOCTYPE html>
<html>
<body>

<p>Count numbers: <output id="result"></output></p>
<button onclick="startWorker()">Start Worker</button>
<button onclick="stopWorker()">Stop Worker</button>

<script>
var w;

function startWorker() {
  if (typeof(Worker) !== "undefined") {
    if (typeof(w) == "undefined") {
      w = new Worker("demo_workers.js");
    }
    w.onmessage = function(event) {
      document.getElementById("result").innerHTML = event.data;
    };
  } else {
    document.getElementById("result").innerHTML = "Sorry! No Web Worker support.";
  }
}

function stopWorker() {
  w.terminate();
  w = undefined;
}
</script>

</body>
</html>

Công nhân web và DOM

Vì nhân viên web ở trong các tệp bên ngoài, họ không có quyền truy cập vào các đối tượng JavaScript sau:

  • Đối tượng cửa sổ
  • Đối tượng tài liệu
  • Đối tượng cha mẹ