JS的加载方式对比
发布日期:2021-06-30 16:30:56 浏览次数:2 分类:技术文章

本文共 1568 字,大约阅读时间需要 5 分钟。

JS方法加载有两种事件:

1. ready。表示文档结构已经加载完成(不包含图片等非文字媒体文件);

2. onload。指示页面包含图片等文件在内的所有元素都加载完成。

一般情况一个页面响应加载的顺序是:域名解析-加载html-加载js和css-加载图片等其他信息。那么document.ready事件在“加载js和css”和“加载图片等其他信息”之间。比如有时我们发现我们的js方法是是没生效的,这就是由于DOM的加载顺序而导致的。比如下代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>          index.jsp                        
{
{ message }}

使用Vue在页面输出Hello Vue!是没效果的,页面只输出{

{ message }},若要使其生效,则必须将脚本放置在{
{ message }}后面才可以。

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>          index.jsp                    
{
{ message }}

此时页面才会正常的打印出Hello Vue!的内容,但现在问题来了,如果我就要放置在head标签中呢?这就涉及到我们开始提到的加载顺序。

1.原生js的onload加载方式

          index.jsp                        
{
{ message }}

      在元素的 onload 事件中绑定一个处理函数。假设处理函数绑定给 window 对象。则会在全部内容 ( 包含窗体、框架、对象和图像等 ) 载入完成后触发。假设处理函数绑定在元素上,则会在元素的内容载入完成后触发。

2.利用jquery实现的ready加载(需引入jquery.js)

$(document).ready(function(){});//上面的代码也可以简写为如下内容$(function(){       });

3.DOM元素加载之前执行

(function(){    			   alert("DOM加载之前执行!");	        })(jQuery);

 上面的代码alert会在DOM加载之前执行

4.总结

window.onload必须等到页面内包含图片的全部元素载入完成后才干运行。

$(document).ready()是DOM结构绘制完成后就运行,不必等到载入完成后。

window.onload不能同一时候编写多个,假设有多个window.onload方法,仅仅会运行一个。

$(document).ready()能够同一时候编写多个。而且都能够得到运行。

 

转载地址:https://kevin.blog.csdn.net/article/details/81185657 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:JS操作Cookie工具类
下一篇:使用eclipse封装jar包并上传至私服

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月24日 08时15分05秒