Bài viết
Xử lý phía máy khách là gì?
Hầu hết công cụ tệp hoạt động bằng cách gửi tài liệu đến máy tính từ xa, nơi thực hiện công việc nặng nề rồi gửi lại kết quả. Xử lý phía máy khách đảo ngược điều đó: chính trình duyệt của bạn thực hiện công việc, và tệp không bao giờ rời khỏi thiết bị của bạn.
Hai cách một công cụ có thể hoạt động: máy của bạn hay máy của họ
Với xử lý phía máy chủ, tải tệp lên giống như gửi quần áo đến tiệm giặt ủi: bạn giao đi, máy từ xa xử lý, và sau đó lấy kết quả về. Xử lý phía máy khách giống như tự giặt ở nhà hơn. Công cụ chạy trong tab trình duyệt của bạn, đọc tệp từ bộ nhớ, xử lý, rồi trả kết quả cho bạn, tất cả mà không có tệp nào chạm vào bất kỳ kết nối mạng nào. Trang web chỉ cần giao code xử lý một lần. Sau đó, mọi thứ đều hoạt động ở phía bạn.
WebAssembly mang lại gì cho trình duyệt
Trong nhiều năm, trình duyệt chỉ có thể chạy JavaScript, phù hợp cho giao diện nhưng quá chậm cho các tác vụ như mã hóa lại video hoặc nén ảnh lớn. WebAssembly (thường viết tắt là WASM) đã thay đổi điều đó. Đây là định dạng nhị phân gọn nhẹ mà trình duyệt có thể thực thi với tốc độ gần như native, cho phép code viết bằng C hoặc C++ được biên dịch sang WASM và chạy trong tab trình duyệt mà không cần plugin nào. Các codec và thư viện nén từng chạy phần mềm máy tính để bàn giờ đây chạy trực tiếp trong trang. JavaScript và WebAssembly phối hợp với nhau: JavaScript xử lý giao diện và điều phối, còn WASM xử lý các tính toán nặng.
Điều thực sự xảy ra trong khi xử lý
Khi bạn thả tệp vào công cụ phía máy khách, trang tải một engine xử lý nhỏ (thường là module WASM) nếu chưa có, rồi truyền tệp của bạn cho nó qua JavaScript. Quá trình xử lý thực tế thường chạy trên một luồng nền gọi là Web Worker, giúp giao diện trình duyệt vẫn phản hồi trong khi công việc diễn ra. Bạn có thể mở tab Network của trình duyệt bất cứ lúc nào trong quá trình này và không có yêu cầu nào mang tệp của bạn sẽ xuất hiện. Kết quả được tập hợp trong bộ nhớ và cung cấp cho bạn dưới dạng tải xuống.
Sự đánh đổi trung thực bạn cần biết
Lần đầu dùng công cụ phụ thuộc vào engine WASM lớn, trình duyệt tải xuống và lưu vào bộ nhớ đệm engine đó. Các lần dùng sau bỏ qua bước tải xuống và có thể hoạt động hoàn toàn ngoại tuyến. Vì xử lý chạy trên thiết bị của bạn, tệp rất lớn sẽ mất thời gian tùy theo CPU và bộ nhớ có sẵn, và một trung tâm dữ liệu có thể hoàn thành một số tác vụ nặng nhanh hơn. Nhưng những gì bạn nhận được là thực: tệp không bao giờ được truyền đi, không phải chờ tải lên với kết nối chậm, và công cụ tiếp tục hoạt động không cần internet sau lần tải đầu tiên đó.
Công cụ trong bài viết này
- Nén hình ảnh Giảm dung lượng tệp ảnh mà không cần tải lên. Thanh chất lượng hoặc kích thước mục tiêu theo KB. Hỗ trợ hàng loạt.
- Nén video Giảm dung lượng video bằng cách mã hóa lại H.264 trong trình duyệt. Không tải lên, không máy chủ.
- Gộp tệp PDF Kết hợp nhiều tệp PDF thành một, ngay trong trình duyệt.
Câu hỏi thường gặp
Xử lý phía máy khách có tự động nghĩa là dữ liệu của tôi riêng tư không?
Phía máy khách có nghĩa là tệp không được gửi đến máy chủ theo thiết kế, đó là điều tạo ra sự riêng tư. Bạn có thể tự xác nhận bằng cách mở tab Network trong developer tools của trình duyệt trong khi xử lý tệp: không có yêu cầu gửi đi nào nên mang dữ liệu tệp của bạn. Dù vậy, việc kiểm tra xem một công cụ có thực sự hoạt động như vậy thay vì chỉ tin vào nhãn hiệu là điều khôn ngoan.
Tại sao lần đầu dùng công cụ đôi khi chậm hơn?
Trình duyệt cần tải xuống engine xử lý (module WASM) lần đầu tiên bạn dùng, có thể mất vài giây tùy kích thước và kết nối của bạn. Sau đó, engine được lưu vào bộ nhớ đệm cục bộ, nên các phiên sau bắt đầu ngay lập tức và công cụ hoạt động ngoại tuyến.