不同浏览器加载JS不同解决方案——defer
来源:互联网 发布:ios 蜂窝数据开关 快捷 编辑:程序博客网 时间:2024/06/07 04:50
最近在工作中遇到了一个奇怪的问题,在web文本前端加载js文件,在Chrome和Firefox浏览器中运行正常,但在IE浏览器中运行无法显示效果。采用多种办法,最后发现IE和Firefox浏览器兼容性互斥,于是采用了再JS文件中先辨别浏览器类型,然后根据不同的浏览器来进行不同的加载。具体如下:
<script>function LoadJS(jsUrl, errCallBack,asyncl){$.ajax({url:jsUrl,type:'get',cache:false,async:asyncl,error:function(){if(errCallBack && idFunction(errCallBack)){errCallBack();}}});}function errCallBack(){}if($.browser.mise){LoadJS("xxxx.js",errCallBack,false);}else if(navigator.useAgent.indexOf("Safari")>0){LoadJS("xxxx.js",errCallBack,true);}else{var oHead=document.getElementByTagBame('HEAD').item(0); var oScript=document.createElement("script"); oScript.language="javascript"; oScript.type="text/javascript"; oScript.id=sId; oScript.defer=true; oScript.text=source; oHead.appendChild(oScript);}</script>
经过了这么多努力,发现还是存在一些问题,在Firefox浏览器隐身模式下进行加载时还是会出现一些问题,此时不在进行解决。查询其他方法,无意间发现script的defer属性,将源代码中的的script文件的加载设置defer为TRUE,解决所有问题,上述代码也不在需要。在此对Javascript的defer属性进行分析和总结:
defer属性设置为TRUE时,让浏览器加载js脚本时不等脚本加载完成就开始对该脚本之后的其他图片、文本、HTML代码进行加载了,然后让js脚本自己在慢慢加载,然后再执行。
给外链的JS脚本添加defer="true",其方式如下:
<script defer="true" src="xxxx.js" type="text/javascript"/>,这种方式加载JS文件能够提高网页的加载速度,特别是对比较大的脚本。
注意,defer="true"还可以用作defer="defer",但在XTHML格式的网页中还是使用defer="true"比较恰当。在使用defer时应注意一下问题:
1、不要在defer型脚本程序段中调用document.write命令,因为document.write将产生直接输出效果。
2、不要在defer型脚本程序段中包括任何立即执行脚本要使用的全局变量或者函数。
0 0
- 不同浏览器加载JS不同解决方案——defer
- 不同浏览器引用不同JS
- js识别不同浏览器
- js区分不同浏览器
- JS识别不同浏览器
- js判断不同浏览器
- 根据不同浏览器加载不同css文件
- JS不同加载方法
- Js文件在不同浏览器中的加载解析问题
- 不加的浏览器加载不同的js
- 根据不同环境加载不同js文件
- 根据不同环境加载不同js文件
- js 不同浏览器 的判断
- JS识别不同浏览器信息
- defer、async属性以及JS异步加载并执行解决方案
- defer、async属性以及JS异步加载并执行解决方案
- defer、async属性以及JS异步加载并执行解决方案
- defer、async属性以及JS异步加载并执行解决方案
- C语言中volatile关键字的作用
- Linux suse x86_64 环境上部署Hadoop启动失败原因分析
- Java匿名内部类,你知道吗?
- JVM总结 - 异常
- 【Android开发日记】新浪微博每条微博底部的3个按钮布局
- 不同浏览器加载JS不同解决方案——defer
- cocos2dx init 和onEnter
- tslib移植
- GUTI,Globally Unique Temporary UE Identity,全球唯一临时UE标识。
- Linux源码安装过程中选项—prefix的作用
- Web Navigation - POJ 1028 栈
- Handler介绍
- Ubuntu 入门 及 常见问题 及 解决方法
- Scala类和对象的学习