动态同步加载JS脚本

js实现页面加载完毕之前loading提示效果 js实现页面加载完毕之前loading提示效果:在页面上所有的DOM没有加载完毕之前,我们想让页面正中间显示一个“页面加载中,请稍后...”的字样,此效果正是,样式可以根据自己的需求改动!!! 立即下载
脚本:
  1. <script type="text/javascript">
  2. (function () {
  3.     dsLoadingJS = {
  4.         //获取XMLHttpRequest对象(提供客户端同http服务器通讯的协议)
  5.         getXmlHttpRequest: function () {
  6.             if (window.XMLHttpRequest) // 除了IE外的其它浏览器
  7.                 return new XMLHttpRequest();
  8.             else if (window.ActiveXObject) // IE 
  9.                 return new ActiveXObject("MsXml2.XmlHttp");
  10.         },

  11.         //导入内容
  12.         includeJsText: function (rootObject, jsText) {
  13.             if (rootObject != null) {
  14.                 var oScript = document.createElement_x("script");
  15.                 oScript.type = "text/javascript";
  16.                 oScript.text = jsText;
  17.                 rootObject.appendChild(oScript);
  18.             }
  19.         },

  20.         //导入文件
  21.         includeJsSrc: function (rootObject, fileUrl) {
  22.             if (rootObject != null) {
  23.                 var oScript = document.createElement_x("script");
  24.                 oScript.type = "text/javascript";
  25.                 oScript.src = fileUrl;
  26.                 rootObject.appendChild(oScript);
  27.             }
  28.         },

  29.         //同步加载
  30.         addJs: function (rootObject, url) {
  31.             var oXmlHttp = this.getXmlHttpRequest();

  32.             oXmlHttp.onreadystatechange = function ()  //其实当在第二次调用导入js时,因为在浏览器当中存在这个*.js文件了,它就不在访问服务器,也就不在执行这个方法了,这个方法也只有设置成异步时才用到        
  33.             {
  34.                 if (oXmlHttp.readyState == 4) //当执行完成以后(返回了响应)所要执行的        
  35.                 {
  36.                     if (oXmlHttp.status == 200 || oXmlHttp.status == 304) //200有读取对应的url文件,404表示不存在这个文件        
  37.                     {
  38.                         this.includeJsSrc(rootObject, url);
  39.                     }
  40.                     else {
  41.                         alert('XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')');
  42.                     }
  43.                 }
  44.             }

  45.             //1.True 表示脚本会在 send() 方法之后继续执行,而不等待来自服务器的响应,并且在open()方法当中有调用到onreadystatechange()这个方法。通过把该参数设置为 "false",可以省去额外的 onreadystatechange 代码,它表示服务器返回响应后才执行send()后面的方法.
  46.             //2.同步执行oXmlHttp.send()方法后oXmlHttp.responseText有返回对应的内容,而异步还是为空,只有在oXmlHttp.readyState == 4时才有内容,反正同步的在oXmlHttp.send()后的操作就相当于oXmlHttp.readyState == 4下的操作,它相当于只有了这一种状态.
  47.             oXmlHttp.open('GET', url, false); //url为js文件时,ie会自动生成 '<script src="*.js" type="text/javascript"></script>',ff不会  
  48.             oXmlHttp.send(null);
  49.             this.includeJsText(rootObject, oXmlHttp.responseText);
  50.         }
  51.     }
  52. })();
  53. </script>

调用方法:
  1. <body>
  2.      <div id="divID"></div>
  3.      <script type="text/javascript">
  4.          var rootObject = document.getElementByIdx_x("divID");
  5.          dsLoadingJS.addJs(rootObject, "skin.js");                                                          //dsLoadingJS.addJs(rootObject,"http://www.sina.com.cn/article/skin.js"); 
  6.     </script>
  7. </body>
同步异步动态引入js文件的几种方法总结 下面小编就为大家带来一篇同步异步动态引入js文件的几种方法总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 立即下载

相关推荐

javascript 文件的同步加载与异步加载实现原理

HTML 4.01 的script属性 charset: 可选。指定src引入代码的字符集,大多数浏览器忽略该值。 defer: boolean, 可选。延迟脚本执行,相当于将script标签放入页面body标签的底部,js脚本会在document的DOMContentLoaded之前执行。除IE和较新版本的Firefox外,其他浏览器并未支持。 language: 已废弃。大部分浏览器会忽略该值。 src: 可选。指定引入的外部代码文件,不限制后缀名。 type: 必选。指定脚本的内容类型(MIME类型)。现实中通常不指定该值也可以,浏览器会默认当作text/javascript类型来解释执

JS同步加载以及异步加载的三种方式

JS同步加载 同步加载就是一种我们最常用的一种方式。这种加载方式带来的一种影响就是会导致页面阻塞。因为js中有输出document内容、修改dom、重定向等行为,就会造成页面堵塞。所以建议是把script标签写在body的后面。尽量避免这种阻塞带来的影响。 异步加载 1.defer的用法-以前适用于IE,写在可以在主流浏览器上使用。 <script src="test.js" defer></script> defer可以直接在script标签上使用。他的属性值也就他自己一个,所

m0_47191887的博客 2773

分享一个简单的迭代学习机器人双臂控制(MATLAB)

1 什么是迭代学习控制 迭代学习控制(iterative learning control,简称ILC)由Uchiyama于1978年首先提出,不过因为论文由日文撰写,影响不是很大。1984年,Arimoto等人用英文介绍了该方法。它是指不断重复一个同样轨迹的控制尝试,并以此修正控制律,以得到非常好的控制效果的控制方法。 迭代学习控制的特点是“在重复中学习”,通过反复的迭代修正,达到改善控制效果的目的。迭代学习控制的原理是根据系统前次运行所获得的输出误差信息,在控制过程中不断修正控制输入,随着迭代的进行,逐

weixin_45776027的博客 4483

JavaScript script标签同步异步加载过程

JavaScript script标签同步异步加载过程

weixin_44000173的博客 2213

实战案例:用多智能体系统模拟房地产市场的架构设计

房地产市场是典型的复杂自适应系统:买方纠结“要不要上车”、卖方盘算“挂多少钱能快速成交”、中介忙着“撮合两边赚佣金”、政府琢磨“怎么调政策稳房价”——每一个参与者的微小决策,最终都会汇聚成“房价暴涨”“成交冰点”这样的宏观现象。传统的计量经济学模型(比如线性回归)假设“所有人都是理性人”,但现实中没人能算清所有变量——你可能因为“同事买了学区房”就跟风,也可能因为“怕失业”而放弃买房。这时候,多智能体系统(MAS)

移动开发前沿的博客 1123

脑影像分析入门:如何用一般线性模型(GLM)处理fMRI数据?

本文为神经影像研究入门者详细解析了如何运用一般线性模型(GLM)处理fMRI数据。文章从GLM的核心原理出发,逐步拆解了从实验设计、构建稳健设计矩阵、模型估计与统计推断,到高阶分析及多重比较校正的全流程,并指出了常见陷阱与结果解读要点,是掌握fMRI数据分析基础的关键指南。

weixin_29091445的博客 400

写一个爬取股票人气排名的Python程序!

Pandas的query函数为我们提供了一种编写查询过滤条件更简单的方法,特别是在的查询条件很多的时候,在本文中整理了10个示例,掌握着10个实例你就可以轻松的使用query函数来解决任何查询的问题。

2401_86168842的博客 2942

stm32教程之三重ADC交错采样

ps:本文基于stm32F407ZGT6单片机 stm32F4单片机单通道采集的最大采样率为2.4M,所以有时会难以满足较高频率的采样,于是查阅芯片手册,发现stm32F4支持多重ADC采集,利用每个通道的转换时间,错位采样,从而提高采样率,最大把采样率开到2.4*3=7.2M. (去年初学ADC时研究的,基于cube和HAL库的三重ADC交错采样参考资料不多,我也是研究了一段时间,写下这篇博客希望可以帮助到更多人。) 示意图如下: 以下是官方例子的说明, In this ex...

weixin_52178036的博客 8877

js文件同步和异步的引入问题

这在服务器端环境中非常有用,因为模块文件通常都已经在本地,加载很快,而且一般需要在服务器启动时加载所有必要的模块。defer 属性:这也会使得浏览器非阻塞(异步)地下载 JavaScript 文件,但是与 async 不同的是,包含 defer 属性的。标签并不是使用模块化的导入导出方式,可以使用该标签加载执行JS文件,但是其中所有的变量和函数都会在全局作用域中。在module模块加载完成之前是不会执行下面的代码的,所以在模块导入后的所有地方都可以直接使用该模块。多个包含 async 属性的。

mantou_riji的博客 2280

【Linux】软件控制USB重新上电、加载:usbreset、hubpower、uhubctl

使用命令控制USB的供电、复位

郭老二 2188

Central Finance 全景解析:用 SAP S/4HANA 构建跨系统的财务中台与渐进式转型路径

Central Finance 是基于 SAP S/4HANA 的一种部署与应用场景:在不打断现有异构源系统运营的前提下,把多套 SAP 与非 SAP 系统中的财务与管理会计数据实时/准实时复制到一套中心化的 SAP S/4HANA 中,作为统一的记账与分析底座,逐步把选定的财务流程(如预算控制、付款、固定资产结账等)迁入中心系统。这让企业既能快速获得统一报表与统一核算结构,又为未来的整体迁移留出了弹性路径。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 392

javascript中动态加载js文件多种解决办法

var head = document.head                 || document.getElementsByTagName("head")[0]|| document.documentElement;      var script = document.createElement("script");      script.setAttribute("type",

yinxianluo的专栏 1万+

从零开始:手把手教你设计人形机器人锂电池供电系统

人形机器人要像人类一样“活起来”,必须有稳定的“能量血液”——供电系统。本文聚焦锂电池供电系统如何根据机器人功耗选择合适的锂电池参数(容量、电压、放电倍率);如何设计电池管理系统(BMS)保护电池安全;如何解决机器人运动时的“瞬时大电流”供电难题;如何通过硬件电路和代码实现供电系统的监测与控制。用“机器人小助手的能量危机”故事引入锂电池供电系统;拆解锂电池核心参数(容量、电压、放电倍率)和供电系统三大组件(电池组、BMS、电源转换模块);

AI天才研究院 1759

ie从服务器加载同名js文件,同步异步动态引入js文件的几种方法总结

同步异步动态引入js文件的几种方法总结发布于 2017-05-19 05:58:43 | 71 次阅读 | 评论: 0 | 来源: 网友投递JavaScript客户端脚本语言Javascript 是一种由Netscape的LiveScript发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果...

weixin_31328561的博客 620

基于Python的房地产评估数据抓取与分析 —— 房价走势与市场报告

在房地产行业中,了解和分析房产价格的变化趋势、各个地区的房价差异以及市场评价报告,可以帮助投资者、购房者以及政策制定者做出更加明智的决策。本文介绍了如何使用Python爬虫技术抓取房地产平台上的房产评估报告、价格走势等数据,并对抓取的数据进行分析。通过这些技术,您可以自动化抓取房地产平台的数据,分析房价走势,获取市场报告,为房地产投资决策提供数据支持。假设我们要从链家网抓取某个房产的价格、房产描述以及历史成交价格,首先需要获取目标房产页面的URL,并发送HTTP请求。伪装为常见浏览器,避免被识别为爬虫。

2201_76125261的博客 847

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

如何动态加载js

如果使用ajax开发页面,可能会遇到需要加载很多js文件的情况。每个js文件需要耗费一些重新连接的时间,所以会导致页面显示过慢的情况。如果采用动态加载js的方式,先把几个重要的js下到客户端,然后跟据需要再加在相关的js可以提高页面显示的速度和效率。 下面介绍几种动态加载的方法: 1、直接document.write document.write(""); ...

u011124352的博客 106

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【转载】动态加载JS脚本的4种方法

要实现动态加载JS脚本有4种方法: 1、直接document.write language="javascript">      document.write("src='test.js'>");    2、动态改变已有script的src属性 src='' id="s1">  language="javascript">      s1.src="test.js" 

绝凌峰 390

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

异步加载JS脚本

参考:https://www.jianshu.com/p/bf8b5bf5fc90 javaScript脚本对现代网站来说是必不可少的。当用户访问站点,需要下载各种资源,例如js脚本,CSS,图片,iframe等。 浏览器下载除js外的资源时,会 并行下载,以提高性能。但下载js脚本时,会禁止并行下载(成为脚本阻塞)。浏览器遇到JS时,必须等JS下载,解析,执行完毕后,才能继续并行下...

Sugarman0620的博客 218

实现动态加载JS脚本有4种方法

这里重新温习Document.write()的用法,必须在加载页面的过程中使用,否则将复写整个页面,这里我碰到的问题是,如果用一些异步方法把内容写进页面Body中是不行的,应为IE无法被我们的脚本所阻塞,无法要求加载过程。这三种方法都是异步执行的,也就是说,在加载这些脚本的同时,主页面的脚本继续运行,如果用以上的方法,那下面的代码将得不到预期的效果。alert( "主页面动态加载a.js并取其中的变量:" + str );alert( "主页面动态加载a.js并取其中的变量:" + str );

xinyuerr的博客 2845

动态加载js文件

window.onload=function(){ //如果需要加载js文件须在这里面调用文件里的方法,可解决同步问题 text();//调用引入的js文件里方法 } //动态加载js文件 var flag=true;//如果为true可选择加载js脚本 if(flag){ var script =ducument.createElement("script"); script.type="te

longchenghui20的专栏 348

JS动态加载JS

1、直接document.write     document.write(""); 2、动态改变已有script的src属性     s1.src="test.js" 3、动态创建script元素     var oHead = document.getElementsByTagName('HEAD').item(0);     var oS

it_man的专栏 1865

动态加载JS脚本的4种方法

要实现动态加载JS脚本有4种方法: 1、直接document.write document.write(""); 2、动态改变已有script的src属性 s1.src="test.js" 3、动态创建script元素 var oHead = docum...

gukeming888的博客 144

ajax动态加载JS脚本的四种方法

Prototype之Ajax.Updater不能正确引入脚本的问题 实用且不花哨的js代码大全 要实现动态加载JS脚本有4种方法: 1、直接document.write document.write(""); 2、动态改变已有script的src属性 s1.src="test.js" 3、动...

xuyelong3的博客 1465

js 加载问题

JS动态加载JS<br />1、直接document.write <br /> <script language="javascript"> <br />     document.write("<script src='test.js'><//script>"); <br /> </script> <br /> 2、动态改变已有script的src属性 <br /> <script src='' id="s1"></script> <br /> <script language="javasc

lyq123333321的专栏 699
上一篇: 【转载】JS操作DIV全属性
下一篇: asp.net中Repeater分页代码…
绝凌峰
博客等级 码龄18年 28粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值