$(function(){})与!function(){}()在页面中的加载顺序比较
来源:互联网 发布:好用的加湿器 知乎 编辑:程序博客网 时间:2024/05/22 17:31
大家都知道
$(function(){});
是 $(document).ready(function(){}) 的简写,它是在页面DOM加载完毕之后自动执行。
!function(){}();
是一个匿名函数,而且类似这样函数的写法还有好多种,比如说
(function(){}());
(!function(){})();
~function(){}();
其实无论是括号,还是感叹号,让整个语句合法做的事情只有一件,就是让一个函数声明语句变成了一个表达式,本人就比较喜欢用 !function(){}(); 这个格式。
既然都是函数,那么问题来了,到底!function(){}(); 是在页面的什么时候运行呢?它跟$(function(){}); 谁又会更早运行呢?
带着这两个问题我就新建了一个项目,写了一个页面测试了一下
<?xml version="1.0" encoding="UTF-8" ?><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><script type="text/javascript" src="<%=path%>/chat/js/jquery-3.0.0.min.js"></script><script type="text/javascript">$(function() { console.log("自动加载了吗? "); alert("$fuction已调用");}); !function(){console.log("调用了more");alert("!fuction已调用");}();/* (function(){console.log("调用了more");alert("(fuction(){}())已调用");}()); *//* (function(){console.log("调用了more");alert("(fuction(){})()已调用");})(); */function see() { alert("!function实在页面加载前被调用,$function是在页面加载完成后被调用");}</script><title>test</title></head><body><h2>$(function(){})与!function(){}()加载顺序的测试</h2><div><span><input type="button" value="查看测试结果" onclick="see()" /></span></div></body></html>
最后的运行结果是
所以由上面的测试,我得出来的结果是,!function(){}(); 是在页面加载前就被调用,而$(function(){}); 是在DOM加载完之后被调用,几乎是和页面同时出来的。
由此可见,在页面中,!function(){}(); 是要比 $(function(){}); 提前被加载。
这虽然不是什么大试验,但是记录下来,方便供他人参考,也方便自己以后查阅
1 0
- $(function(){})与!function(){}()在页面中的加载顺序比较
- jQuery中$(function()与(function($)、$(function(){ }) = $(document).ready(function(){ })及页面加载顺序
- javascript中的Function与function
- jquery的 $(function(){ }) = $(document).ready(function(){ }) ,及页面的加载顺序
- jquery的 $(function(){ }) = $(document).ready(function(){ }) ,及页面的加载顺序
- jquery与javascript中的两个页面加载事件 window.onload 与 $(document).ready(function(){})区别
- $(function(){})与onload比较
- javascript在页面中的加载顺序
- 在子jsp页面中调用父jsp中的function或父jsp调用子页面中的function
- Sub 与 Function 在VB程序设计中的区别
- (function(){})()与!function(){}()
- $(function(){})与(function($){})(jQuery)
- (function(){})与$(function(){})
- (function(){...})() 与 (function(){...}())
- JavaScript中的function与感叹号
- jquery 3.x iframe.onload 与 ifame页面里的$(function(){})的执行顺序
- eval与new Function()之比较
- 理解javascript中的function与new Function的区别
- JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解
- hadoop-基础-安装以及介绍
- POJ1079
- 【SpringMVC架构】SpringMVC入门实例,解析工作原理(二)
- 关于Mac Sierra 10.12 搜狗输入法奔溃
- $(function(){})与!function(){}()在页面中的加载顺序比较
- 以太坊平台评估 私有链和联盟链的机会与挑战
- Java基本数据类型-浮点类型
- <BEA-000449><Closing socket as no data read from it on timeout of 5 secs>问题
- 微信小程序知识体系
- Spring事务管理(详解+实例)
- 原创:老司机为教老婆学Python,星期天用Python写了一个俄罗斯方块程序。现在分享给大家,供大家闲暇时娱乐。
- mybatis批量插入数据
- 以太坊的历史