Safari trước đây gặp lỗi khi sử dụng top‑level await vì bộ nạp module của nó còn dựa trên bản đề xuất WHATWG Loader đã bị bỏ và không tuân thủ đầy đủ spec ECMAScript. Nguyên nhân là bộ nạp cũ được viết bằng JavaScript, dẫn tới lỗi “accessed before initialization” và thứ tự đánh giá module không chính xác. Để khắc phục, nhóm WebKit đã viết lại toàn bộ bộ nạp module từ đầu bằng C++ nguyên bản và kiểm tra kỹ lưỡng bằng fuzzing, test262, WPT và các test case do Bun engineers cung cấp. Kết quả là Safari 27 beta và Safari Technology Preview 251 đã полностью hỗ trợ top‑level await mà không còn những lỗi trước đây. Bài học là đầu tư vào việc viết lại thành phần lõi bằng ngôn ngữ native và thực hiện bộ kiểm tra đa dạng giúp đạt được tuân thủ spec và ổn định lâu dài. Nhà phát triển có thể kiểm tra tính năng này ngay trong Safari Technology Preview 251 hoặc bản beta Safari 27 để xác nhận việc top‑level await hoạt động đúng như mong đợi.
Why read it: Bài này giúp lập trình viên hiểu Safari đã sửa lỗi top-level await ảnh hưởng đến cách module được tải và thực thi.
Answer 3 short questions to earn reward points for this article. Only do it if you want the points.
3 questions · under a minute · optional
Source: https://webkit.org/blog/18227/fixing-top-level-await-in-safari. 8 Sync News only summarizes and links out; content copyright belongs to the authors and original sources.
Đang tải bình luận…
Ladybird là một dự án trình duyệt mới được xây dựng từ đầu, nhằm mang lại trải nghiệm hiện …
JavaScript’s built‑in Date object long suffered from mutability, zero‑based months and weak timezone support, leading developers to look for a better alternative. Temporal reached TC39 Stage 4 and was shipped in Chrome 144, bringing immutable plain objects, true timezone‑aware types and month numbering from 1 to 12. These changes eliminate common bugs such as off‑by‑one month errors and unintended mutations, making date/time code clearer and easier to test. The experience shows that fixing core design flaws with an immutable, standards‑driven API greatly boosts reliability, so teams should begin migrating to Temporal once it gains wider browser support. Adopting such APIs early can reduce technical debt and improve overall code quality.
Temporal giải quyết triệt để những nhược điểm lớn nhất của đối tượng Date trong JavaScript bằng kiểu dữ liệu không thể thay đổi, hỗ trợ múi giờ chính xác và loại bỏ việc tháng được đánh số bắt đầu từ 0.
Cypress 16 tập trung giải quyết mọi nguyên nhân làm chậm test suite với HTTP/2 support giúp giảm đáng kể thời gian load tài nguyên. Zero-delay typing và faster visibility checks cải thiện tốc độ tương tác với elements, trong khi retrying cookie commands tránh lỗi do vấn đề mạng. Tự động memory management ngăn chặn rò rỉ bộ nhớ qua các test case dài. Phiên bản này đáng học vì tăng hiệu suất test lên đến 30% so với bản trước, đặc biệt hữu ích cho dự án sử dụng nhiều API call và test UI phức tạp.
Cypress 16 giúp tăng tốc độ kiểm thử đáng kể với hỗ trợ HTTP/2 và nhiều cải tiến tối ưu hiệu suất khác.
Năm 2023, một lập trình viên ẩn danh đăng tải dự án Minesweeper thu nhỏ chỉ 247 bytes trên GitHub, gây chú ý trong cộng đồng JavaScript Weekly. Nguyên nhân kỹ thuật nằm ở việc sử dụng kỹ thuật nén code cực đoan: bỏ qua khoảng trắng, rút gọn tên biến thành 1 ký tự, kết hợp các hàm ẩn danh và tận dụng cơ chế eval để tái sử dụng code. Hệ quả là trò chơi Minesweeper cổ điển giờ chạy được trong 247 bytes, đủ nhỏ để nhúng vào bất kỳ trang web nào mà không ảnh hưởng hiệu năng. Điều đáng học ở đây là cách tối ưu hóa không gian code bằng các kỹ thuật như minification thủ công, tận dụng cú pháp JavaScript ngắn gọn (ví dụ: for thay vì forEach), và khai thác các đặc tính ngôn ngữ như with hay eval một cách khéo léo.
Lập trình viên nên đọc bài này để khám phá cách tối ưu hóa mã JavaScript với các kỹ thuật gom gọn và trích xuất logic cực kỳ hiệu quả, giúp hiểu rõ về cách tối thiểu hóa dung lượng mã trong các dự án thực tế.
Node.js 24.20.0 là phiên bản LTS mới nhất của môi trường chạy JavaScript đa nền tảng, miễn …
React app thường tải một lượng JavaScript không cần thiết, gây ra hiệu năng kém. Nguyên nhân là do nhiều tính năng hoàn toàn có thể thực hiện bằng native browser features như :has() selector, Popover API, scroll-snap carousels và CSS animations. Hệ quả là app trở nên chậm, tốn tài nguyên và khó bảo trì. Đáng học ở đây là việc tối ưu bằng cách giảm phụ thuộc vào JavaScript, tận dụng các API trình duyệt hiện có. Phân tích cho thấy việc thay thế một số components React bằng CSS và DOM APIs giúp giảm tới 40% bundle size.
Bài viết này giúp bạn đơn giản hóa ứng dụng React bằng cách tận dụng các tính năng trình duyệt nguyên bản, giảm thiểu sự phụ thuộc vào JavaScript.
Tác giả muốn tạo ra các hiệu ứng chữ cuối cùng trong terminal mà không cần phụ thuộc vào thư viện bên ngoài. Anh đã phát triển tte.js, một thư viện chạy trên trình duyệt dùng Canvas để tạo ra 37 hiệu ứng khác nhau cho văn bản và ASCII art. Vì được viết bằng JavaScript thuần túy và không có bất kỳ dependency nào, tte.js có thể được tích hợp dễ dàng vào bất kỳ dự án web nào mà không tăng kích thước bundle. Thư viện này cho thấy cách sử dụng Canvas có thể mô phỏng các hiệu ứng terminal phức tạp mà vẫn giữ hiệu suất tốt. Đối với những lập trình viên đang cân nhắc đọc bài gốc, đây là một ví dụ thực tế về cách tối ưu hoá hiệu ứng đồ họa bằng JavaScript không cần framework.
Cung cấp 37 hiệu ứng văn bản Canvas tinh tế giúp lập trình viên nâng cao kỹ năng xử lý đồ họa web.
Bài viết mô tả cách Amazon năm 2013 thiết kế menu mega dropdown để tránh việc dùng hack thời gian trễ khi di chuột. Thay vì chờ một khoảng thời gian cố định, hệ thống theo dõi hướng di chuyển của con trỏ và hình tam giác ảo từ vị trí con trỏ tới các góc của submenu để quyết định giữ hay đóng submenu. Tác giả đã ngược lại kỹ thuật này và phát triển plugin jQuery tên jQuery‑menu‑aim, phát ra sự kiện dựa trên việc phát hiện hướng di chuyển. Plugin này được Khan Academy tích hợp vào menu dropdown của mình, chứng minh hiệu quả trong thực tế. Bài học chính là việc sử dụng thông tin hướng di chuyển của chuột có thể tạo phản hồi nhanh hơn và tránh những hack dựa trên thời gian trễ, một kỹ thuật có thể áp dụng cho nhiều loại menu phức tạp.
Bài này giúp lập trình viên hiểu và áp dụng kỹ thuật nhận biết hướng di chuột để tạo menu dropdown thông minh hơn.
Read the news here, practice coding, follow structured courses and train for IELTS on our sibling products — all connected through one 8 Sync account.
The ecosystem home: product overviews, blog and full pricing.
ExploreLearn along a clear roadmap: videos, auto-graded quizzes, certificates and mentors who ship for a living.
View the roadmap1,000+ DSA problems in Vietnamese, auto-graded across 7 languages — many FREE, right in your browser.
Practice for freeAI grading for all four IELTS skills with detailed rubric feedback.
Try it freeA 22 MB AI IDE for Vietnamese devs.
Download freeOrganizational memory for AI agents.
ExploreAI that staffs your Fanpage and qualifies leads for you.
Try it