function loadScript(url,callback){
var script = document.createElement("script");
script.type = "text/javascript";
if(script.readyState){
script.onreadystatechange = function(){
if(script.readyState=="loaded"||script.readyState=="complete"){
script.onreadystatechange = null;
callback();
}else{
script.onload = function(){
callback();
script.src= null;
document.getElementsByTagName("head")[0].appendChild(script);
使用上述的方法动态的加载脚本,文件在执行完该函数时启动下载,文件的下载和执行过程不会阻塞页面的其他进程。
动态脚本加载因为在浏览器的兼容性和易用性的优势中,成为最通用的无阻塞加载的解决方案。
3)XMLHttpRequest脚本注入
var xhr = new XMLHttpRequest();
xhr.open("get","***.js",true);
xhr.onreadystatechange = function(){
if(xhr.status>200&&xhr.status<300||xhr.status==304){
var script = document.createElement("script");
script.type = "text/javascript";
script.text = xhr.responseText;
document.body.appendChild(script);
xhr.send(null);
局限性:js文件只能来自相同的域,不能从SDN下载
4. 推荐使用的无阻塞模式
1)使用3中的2)方式,在body标签结束之前loadScript(url,callback)待加载执行的js文件
2)YUI3方式:待研究
3)LazyLoad 使用LazyLoad加载js文件,用法与1)相同,源码位于http://github.com/rgrove/lazyload/中,后续可以进行研究
4)LABjs
<script type="text/javascript" src="lab.js"></script>
<script type="text/javascript">
$LAB.script("xxx.js").script("xxx.js").wait(function(){
$LAB.script("xxx.js").wait().script("xxx.js").wait(function(){
</script>
综合上述,个人觉得使用2)和3)都合适,推荐使用3),2)值得研究源码
总结
</body> 闭合之前,将所有的<script>标签放在页面底部,确保在执行脚本之前完成渲染
合并脚本,页面中的脚本标签越少,页面的加载也越快
使用无阻塞的javascript加载方式:使用LazyLoad或者LABjs库
本文是由《高性能JAVASCRIPT》整理而来
原文链接:https://blog.csdn.net/zhehuaxuan/article/details/783363861.解决javascript性能问题的本质: 在javascript中,浏览器使用单一进程来处理UI和javascript脚本,在同一个时刻只能做一件事情,所以javascript的脚本执行耗时越久,那么性能就越差 无论是外链还是内链,页面的初始化都需要...
3.22+。
xhEditor完全基于Javascript开发,您可以应用在任何的服务端语言环境下,例如:PHP、ASP、ASP.NET、JAVA等。
xhEditor可以在您的CMS、博客、论坛、商城等互联网平台上完美的嵌入运行,能够非常灵活简单的和您的系统实现完美的无缝衔接。
自2009年4月首个版本发布以来,凭借我们人性化的用户体验和不断持续完善的态度,越来越多的网站选择了使用xhEditor。
我们不是最好的,但是我们会努力做的更好,我们愿意倾听和接受所有用户的心声,长期坚持的开发和完善下去。
主要特点:
精简迷你:初始加载4个文件,包括:1个js(50k)+2个css(10k)+1个图片(5k),总共65k。若js和css文件进行gzip压缩传输,可以进一步缩减为24k左右。
使用简单:简单的调用方式,加一个class属性就能
simplebox.js
simplebox.js是一个轻量级的lightbox插件(〜936字节),可以轻松修改或扩展以满足您的需求。 该插件旨在快速,响应Swift,高效。
这个插件背后的想法是使设置灯箱的过程变得轻松。 我在查找和设置灯箱插件方面的经验非常糟糕。 我遇到的插件几乎总是具有太多功能。 simplebox.js设计为仅具有一项功能:lightboxing。 它开箱即用,仅允许一些关键设置。
要安装simplebox,您必须在页面中包含以下资源。 JS文件应按以下规定的顺序加载。 对于CSS文件,您可以将其与网站的样式表合并,也可以通过<head>的<link>元素从
当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替换成一张大小为1*1px图片的路径(这样就只需请求一次,俗称占位图),
只有当图片出现在浏览器的可视区域内时,才设置图片正真的路径,让图片显示出来。这就是图片懒加载。
2.为什么要使用懒加载?
很多页面,内容很丰富,页面很长,图片较多。比如说各种商城页面。这些页面图片数量多,而且比较大,少说百来K,多则上兆。
要是页面载入就一次性加载完毕。估计大家都会等到黄花变成黄花菜了。
3.懒加载的
我们先来看一段代码,html中使用script标签引入了script1.js、script1.js和script3.js三个文件。
<!DOCTYPE html>
<html lang="ja">
<meta charset="utf-8">
<title>TEST HTML</title>
</head>
<script src="script1.js"></sc
以下为一个名为httpUtils.js的文件,里面的post方法用到了jquery,在httpUtils.js中直接引入jquery的js文件,相应的html页面就只需要引入httpUtils.js即可使用jquery。
var script = document.createElement("script");
script.language = "javascript";
script.s...
可以使用QApplication::setStyleSheet()函数来加载多个qss文件,只需要将多个文件的路径以分号分隔开即可。例如:
QApplication::setStyleSheet("file1.qss;file2.qss;file3.qss");
这样就可以同时加载三个qss文件了。