Có đúng là trình duyệt sẽ cần tải xuống thư viện Webassembly mỗi khi tải trang không?
Không, trình duyệt có thể lưu vào bộ đệm các tệp. CDN chung cho các ứng dụng Blazor sẽ thực hiện thủ thuật.
Hệ thống này hoạt động nhanh hơn, chẳng hạn như React / Vue, được biên dịch bằng JavaScript?
Blazor sử dụng trình lắp ráp web, lắp ráp web trên giấy sẽ nhanh hơn bất kỳ thư viện js nào, tuy nhiên không phải tất cả các trình duyệt đều có trình phân tích cú pháp lắp ráp web hoàn chỉnh. Vì vậy, bạn có thể thấy rằng các trình duyệt sẽ không chạy lắp ráp web với tốc độ tối ưu như bây giờ.
Bạn có thể tạo một ứng dụng blazor nhỏ và chạy nó trong Firefox, chrome hoặc edge. Trong hầu hết các trường hợp, Firefox chạy các ứng dụng nhanh hơn nhiều so với chrome hoặc edge, điều này ngụ ý rằng các nhà sản xuất trình duyệt vẫn cần cải thiện, thậm chí Firefox có thể cải thiện.
Nếu ứng dụng của bạn cần truy cập DOM thường xuyên, thì chắc chắn web assembly / Blazor sẽ chậm hơn so với bất kỳ thư viện JS nào vì web assembly không thể truy cập trực tiếp vào DOM mà không sử dụng Invokes (Hiện tại đang chậm, hãy tham khảo điểm chuẩn blazer của tôi bên dưới) .
Trên Firefox, 10.000 RegisteredFunction.InvokeUnmarshalle
cuộc gọi đến các phương thức trống mất 250ms trong khi chrome và edge cần hơn 2400ms trong PC của tôi. ' Trong JS thuần túy, mất dưới 10 mili giây cho cùng một kịch bản.
Ngoài ra, Blazor triển khai hiện tại có công cụ MSIL của riêng mình trên đầu trang của Công cụ lắp ráp web của trình duyệt, có nghĩa là có hai thông dịch viên làm việc để chạy một dự án Blazor, giống như hai phiên dịch viên thông dịch một cuộc hội thoại thay vì trên một. Hiện tại Microsoft đang làm việc trên một trình biên dịch AOT, trình biên dịch này vẫn chưa được phát hành. Sau khi phát hành Blazor sẽ nhanh hơn nhiều so với việc triển khai hiện tại.
http://www.mono-project.com/news/2018/01/16/mono-static-webassembly-compilation/
Chúng ta có thể yên tâm cho rằng web assembly là tương lai của phát triển web, nhưng hiện tại chúng ta chưa thể nói gì về tương lai của Blazor. Trên giấy, Blazor có thể nhanh hơn bất kỳ khuôn khổ nào hiện có, tuy nhiên chúng tôi cần sự cam kết từ những người bảo trì lắp ráp web, nhà phát triển Trình duyệt, Microsoft và cộng đồng để làm cho lý thuyết trở nên thực tế.
Cập nhật ngày 10 tháng 7 năm 2018
Có các đề xuất mới trong kho lưu trữ WebAssembly.
Cho phép WebAssembly trực tiếp xử lý DOM.
https://github.com/WebAssembly/propestions/issues/8
Các loại tham chiếu cho WebAssembly với GC. https://github.com/WebAssembly/reference-types/blob/master/proposal/reference-types/Overview.md
Hai đề xuất trên sẽ mở đường cho sự tương tác nhanh hơn nhiều giữa DOM và webassembly trong tương lai. IOW Blazor sẽ nhanh hơn nhiều trong tương lai.
Cập nhật ngày 17 tháng 10 năm 2018
Nhóm Firefox có thể tiếp cận cuộc gọi JS -> WASM nhanh như các cuộc gọi phương thức JS -> JS. Hiện tại, FireFox đã vượt xa bất kỳ trình duyệt nào khác khi nói đến hỗ trợ WebAssembly
https://hacks.mozilla.org/2018/10/calls-between-javascript-and-webassembly-are-finally-fast-%F0%9F%8E%89/