扫码关注官方订阅号
在使用requirejs的过程中,我将执行代码都放到domready里面去,但发现,如果页面中有图片,并且服务器还没返回状态码(404之类的),就会导致JS没法执行(一些点击操作。)。若是用jquery的$(function(){})就不会有这种情况的出现,图片即使还在请求中,浏览器刷新状态还在转,不会影响代码的执行。
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
你需要了解下dom的加载方式:
会出项闪屏的效果,体验不是很好
文档外部资源不是很多的时候可以用,当有大量的页面的时候,我们必须等待所有的内容加载完了,用户体验不是很好(指示页面包含图片等文件在内的所有元素都加载完成)如:
原生onload实现
window.onload = function(){}
jQuery的实现方法
$(window).load(function() { // including all frames, objects and images });
原理: 在页面的dom树创建完成后(也就是HTML解析第一步完成)即触发,而无需等待其他的资源的加载,但有分为如下两种情况:
支持DOMContentLoaded事件的
DOMContentLoaded事件:当页面中的文档树解析完成时,在页面的Document对象上,会触发DOMContentLoaded事件.该事件代表了,页面的DOM树已经构建完成,但页面引用的样式表和图像文件,以及包含的框架页面可能还没有加载完成,在页面完全加载完成时,会触发另外一个类似的称为"load"的事件.
不支持的,就用Diego Perini 的hack 兼容。其兼容原理大概就是通过IE的document.documentElement.doScroll('left')来判断DOM树是否创建完毕
如 jQuery实现方法
$(document).ready(function() { });
dom 基础 这个可以看一下,挺不错的。
domready是dom加载完成后的回调。window.onload是页面所有内容都加载完成后才执行(包括图片的加载)。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
你需要了解下dom的加载方式:
可以用setTimeout 模拟加载
会出项闪屏的效果,体验不是很好
也可以用 onload
文档外部资源不是很多的时候可以用,当有大量的页面的时候,我们必须等待所有的内容加载完了,
用户体验不是很好(指示页面包含图片等文件在内的所有元素都加载完成)如:
原生onload实现
jQuery的实现方法
DOMready 成了我们最终的选择
原理: 在页面的dom树创建完成后(也就是HTML解析第一步完成)即触发,而无需等待其他的资源的加载,但有分为如下两种情况:
支持DOMContentLoaded事件的
DOMContentLoaded事件:当页面中的文档树解析完成时,在页面的Document对象上,会触发DOMContentLoaded事件.该事件代表了,页面的DOM树已经构建完成,但页面引用的样式表和图像文件,以及包含的框架页面可能还没有加载完成,在页面完全加载完成时,会触发另外一个类似的称为"load"的事件.
不支持的,就用Diego Perini 的hack 兼容。其兼容原理大概就是通过IE的document.documentElement.doScroll('left')来判断DOM树是否创建完毕
如 jQuery实现方法
dom 基础 这个可以看一下,挺不错的。
domready是dom加载完成后的回调。
window.onload是页面所有内容都加载完成后才执行(包括图片的加载)。