Tiếng Việt

Dữ liệu & bảng tính · CSV Trình dọn dẹp

Cách trình duyệt dọn sạch CSV lớn trong Web Worker mà không cần tải nó lên

· Cách thức hoạt động

csv browser-processing quyền riêng tư

Tệp CSV cục bộ chuyển vào nhân viên trình duyệt và trả về dưới dạng bản tải xuống mà không cần máy chủ
Hình minh họa vector ToolAcre gốc

'Không tải lên' nghe có vẻ giống như tiếp thị cho đến khi bạn thấy nó hoạt động như thế nào. Bài đăng này giải thích cách trình duyệt đọc tệp cục bộ, lý do tại sao Web Worker giữ cho trang phản hồi nhanh, điều gì giới hạn kích thước tệp và cách xác minh không có gì được gửi.

Xuất số lượng lớn và công cụ web — điều thường xảy ra với tệp của bạn và tại sao việc tải lên không phải là điều cần thiết về mặt kỹ thuật

Việc chọn một tệp trên trang web có thể giống như tải lên, nhưng việc chọn và truyền là các thao tác trình duyệt riêng biệt. CSV Cleaner nhận một đối tượng Tệp sau khi khách truy cập chọn nó, xác thực loại được phép và kích thước được định cấu hình, sau đó đọc văn bản của nó bên trong trang. Không cần tải lên để phát hiện dấu phân cách hoặc dọn dẹp hàng.

Bản ghi sản phẩm có thẩm quyền cho biết các hàng được phân tích cú pháp trên thiết bị, trong khi bản ghi công cụ thu hẹp xác nhận quyền sở hữu: mã của nó không đưa ra yêu cầu mang dữ liệu tệp, văn bản được dán hoặc đầu ra được tạo. Yêu cầu tập lệnh phân tích được tiết lộ là lưu lượng truy cập trang riêng biệt, vì vậy ngôn ngữ quyền riêng tư phải phân biệt chúng với đường dẫn xử lý CSV.

Đọc tệp mà không gửi tệp — cách Tệp API của trình duyệt cấp cho trang quyền truy cập vào byte trên thiết bị của bạn

Việc triển khai gọi `file.text()` thay vì FileReader API có tên trong đề cương. Lời hứa đó được giải quyết bằng chuỗi JavaScript có sẵn trên trang. Tệp JSON có một nhánh chuyển đổi riêng; văn bản được phân tách được gửi dưới dạng tin nhắn đến nhân viên cùng với lựa chọn dấu phân cách tùy chọn.

Đọc cục bộ không cấp cho trang web quyền truy cập chung vào ổ đĩa. Trang chỉ nhận được tệp được chọn thông qua điều khiển trình duyệt. Nó lưu trữ tên cơ sở cho lần tải xuống cuối cùng, giữ bảng hiện tại trong bộ nhớ tab và xóa trạng thái đó khi khách truy cập yêu cầu đặt lại.

Trang sử dụng File.text() để đọc các byte đã chọn mà không cần tải lên

Quá trình phân tích cú pháp chạy trong Web Worker được tạo một cách lười biếng trong cuộc gọi đầu tiên. Nhân viên phát hiện dấu phân cách, quét các ký tự thông qua cùng một máy trạng thái được sử dụng bởi các thử nghiệm và trả về tiêu đề, hàng, cảnh báo và cờ BOM đã hoàn chỉnh. Nhãn tiến trình được gửi xung quanh các giai đoạn đó để giao diện chính có thể tiếp tục cập nhật.

Việc giảm tải quá trình quét sẽ ngăn vòng lặp ký tự đồng bộ đó độc chiếm luồng giao diện người dùng chính. Nó không làm cho việc phân tích cú pháp trở nên miễn phí hoặc được phát trực tuyến; văn bản nguồn và bảng trả về vẫn chiếm bộ nhớ. Trên pagehide, máy khách hủy bỏ cuộc gọi trong chuyến bay và chấm dứt nhân viên để tab nền không giữ lại cuộc gọi đó vô thời hạn.

Bộ nhớ, không phải giới hạn tải lên, mới là giới hạn — tại sao mức trần phụ thuộc vào thiết bị và trình duyệt của bạn thay vì hạn ngạch máy chủ

Đề cương cho biết bộ nhớ chứ không phải giới hạn tải lên là giới hạn nhưng giao diện được cung cấp xác thực rõ ràng mức tối đa là 50 MB. Ngưỡng đó nằm ở cả cấu hình văn xuôi và mã bảng điều khiển. Tài nguyên thiết bị và trình duyệt vẫn có thể bị lỗi dưới mức tối đa theo lý thuyết, tuy nhiên bài viết không được xóa phần bảo vệ sản phẩm có chủ ý.

Kho bằng chứng cũng không thể cung cấp mức trần hàng phổ quát, hệ số nhân bộ nhớ hoặc thời gian xử lý. Nội dung tệp thay đổi số lượng và độ dài của chuỗi được tạo. Kỳ vọng có thể bảo vệ được là đầu vào bị giới hạn cộng với khả năng phân tích cú pháp của nhân viên, chứ không phải là con số hiệu suất chưa bao giờ được đo lường trên phần cứng của khách truy cập.

Giao diện thực thi giới hạn tệp 50 MB bên cạnh các ràng buộc về thiết bị

Để xác minh xác nhận quyền sở hữu không tải lên trong phạm vi hẹp, hãy mở công cụ dành cho nhà phát triển sau khi tải trang, xóa danh sách Mạng, chọn một mẫu đặc biệt vô hại và tiến hành dọn dẹp. Kiểm tra các URL, phương thức và nội dung yêu cầu mới cho điểm đánh dấu đó. Bản tải xuống CSV có thể xuất hiện dưới dạng tác vụ trình duyệt cục bộ thay vì yêu cầu tới điểm cuối chuyển đổi.

Kiểm tra nguồn bổ sung cho việc quan sát: đường dẫn tải sử dụng văn bản tệp, trình chạy nhập mã trình phân tích cú pháp cục bộ và downloadText tạo đầu ra. Kiểm tra thời gian chạy nắm bắt các bổ sung triển khai mà chỉ nguồn có thể bỏ sót. Cả hai đều không chứng minh được tiện ích mở rộng của trình duyệt hoặc hệ điều hành làm gì, vì vậy, hãy đưa ra kết luận trong phạm vi đường dẫn xử lý của ToolAcre.

Ví dụ đã hoạt động — dọn dẹp một bản xuất lớn trong khi xem bảng điều khiển mạng và mức sử dụng bộ nhớ, với những gì có thể xảy ra trên thiết bị có bộ nhớ thấp

Sử dụng mẫu được tạo thoải mái dưới giới hạn được ghi lại, có đủ hàng để hiển thị tiến trình nhưng không có dữ liệu khách hàng. Xem hoạt động của nhân viên và xem trước, áp dụng Cắt khoảng trắng, sau đó tải xuống. Ghi lại xem có bất kỳ yêu cầu nào chứa điểm đánh dấu duy nhất hay không; không xuất bản các biểu đồ bộ nhớ hoặc megabyte mỗi giây bịa đặt.

Trên một thiết bị bị hạn chế, dự đoán an toàn duy nhất là các tài nguyên sẵn có sẽ khác nhau. Giới hạn được định cấu hình sẽ ngăn các tệp lớn hơn đi vào đường dẫn này, trong khi áp lực bộ nhớ trình duyệt thông thường vẫn có thể xảy ra. Nếu tab kiểm tra trở nên không ổn định, hãy đóng công việc khác, giảm mẫu và giữ nguyên bản gốc thay vì hứa hẹn một giải pháp chung.

Ví dụ hoạt động: xác minh một mẫu vô hại mà không cần phát minh ra số liệu bộ nhớ hoặc thời gian

Tính năng dọn dẹp cục bộ không thể rút lại tệp đã được gửi trước đó đến dịch vụ khác và không thể xử lý đầu vào bị bộ bảo vệ kích thước từ chối. Nó cũng không cách ly trang khỏi các tiện ích mở rộng, lịch sử clipboard hoặc phần mềm độc hại trên máy. Đó là những ranh giới mối đe dọa riêng biệt bên ngoài việc triển khai trình phân tích cú pháp và công cụ.

Công cụ này lưu giữ lịch sử hoàn tác lên tới 20 trạng thái bảng trong phiên, điều này cũng tiêu tốn bộ nhớ cục bộ. Việc xóa sẽ đặt lại bảng và các điều khiển; việc rời khỏi trang sẽ bị hủy bỏ và chấm dứt nhân viên. Hành vi này là chi tiết vận hành hữu ích nhưng không đảm bảo xóa an toàn cho bộ nhớ trình duyệt hoặc thiết bị.

Có thể kiểm tra quá trình xử lý trên thiết bị — cách ToolAcre CSV Cleaner chạy trong trình duyệt của bạn và không bao giờ tải tệp của bạn lên

Đường dẫn được xác minh hoàn chỉnh là lựa chọn, `File.text()`, phân tích cú pháp công nhân, chuyển đổi hàng thuần túy, tuần tự hóa và tải xuống trình duyệt. Cấu hình xác định giới hạn chấp nhận 50 MB thực tế và điều khoản về quyền riêng tư tách biệt rõ ràng các yêu cầu phân tích được tiết lộ khỏi nội dung bảng tính. Điều đó mạnh hơn một khẩu hiệu vì mỗi ranh giới đều có thể được kiểm tra.

Chạy kiểm tra mạng bằng dữ liệu không nhạy cảm bất cứ khi nào chi tiết triển khai quan trọng đối với tổ chức của bạn. Bằng chứng từ nguồn hiện tại và phiên được quan sát hỗ trợ cho tuyên bố chính xác: hoạt động CSV của ToolAcre không có điểm cuối tải lên và không gửi nội dung bảng. Độ chính xác giữ cho câu lệnh hữu ích mà không giả vờ như toàn bộ trình duyệt đang ngoại tuyến.