Đây thường là cách tôi quản lý nâng cao tiến bộ trong khi vẫn giữ được trải nghiệm sạch sẽ, nhưng mức độ an toàn là như thế nào? có tiềm năng cho một điều kiện chủng tộc và điều này không hoạt động?Có ổn không khi thao tác dom trước trạng thái sẵn sàng?
Hãy tưởng tượng kịch bản trừu tượng đơn giản, bạn muốn hiển thị một cái gì đó khác đi nếu bạn có hỗ trợ javascript .. này nói chung là những gì tôi sẽ kết thúc thực hiện:
<div id="test">original</div>
<script type="text/javascript">
var t = document.getElementById('test');
t.innerHTML = 'changed';
</script>
Nhiều có thể yêu cầu bạn nên sử dụng một khuôn khổ và chờ đợi cho một sự kiện domready, và làm thay đổi ở đó .. tuy nhiên có một sự chậm trễ đáng kể, nơi các 'thử nghiệm' phần tử sẽ đã được rendered trước khi kết thúc của tài liệu và css đã sẵn sàng và một domready gây nên .. do đó gây ra một flicker đáng chú ý của 'original'.
Mã này có phải chịu trách nhiệm đối với các lỗi điều kiện chủng tộc không? hoặc tôi có thể bảo đảm rằng một phần tử có thể phát hiện và sửa đổi được nếu nó tồn tại trước tập lệnh không?
Xin cảm ơn trước.
Hi Raegx, vâng tôi hoàn toàn có thể hiểu được vấn đề hủy bỏ hoạt động với các yếu tố thay đổi mà đã bị đóng .. trong điều khoản của snappiness, các trang này là ánh sáng, trang thực tế là 15kb .. cũng có thể ở ngay dưới thẻ body mở, và nó S render render trước khi đám cháy của domready, bất kể trang của tôi nhẹ đến mức nào .. Tôi đang cố tránh một trải nghiệm cẩu thả đó là luôn luôn có kinh nghiệm imo với domready và làm những điều này. – meandmycode
Trở lại trong thời đại đen tối, khi chúng tôi không có cách duyệt ngang trên trình duyệt để chạy trên DomReady, chúng tôi đã sử dụng onLoad, nó được kích hoạt sau khi tất cả hình ảnh/css/etc được tải và hiển thị. Bây giờ chúng ta có onDomReady sẽ kích hoạt sau khi DOM được phân tích cú pháp và biểu diễn, nhưng có khả năng trước hình ảnh/etc. Đây cũng là một tiến bộ tương đối mới. Vì vậy, chờ đợi OnDomReady là tất cả những gì chúng tôi có tại thời điểm này và giải pháp tốt nhất cho sự vững mạnh của nó. Nếu bạn tin rằng thao tác của bạn trước khi onDomReady đáng giá và bạn không thể thêm/tạo/di chuyển các nút đến các nút không được khép kín thì có lẽ bạn đã ổn. –
Tuyệt vời, nó chắc chắn giá trị nó nếu nó hoạt động .. từ những gì tôi nghe, nó sẽ làm việc tốt nhưng theres không có gì chính thức nói rằng một phần tử nên sẵn sàng sau khi nút đóng của nó. – meandmycode