`
mabusyao
  • 浏览: 252692 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

如何提高HTML页面加载速度

    博客分类:
  • UI
阅读更多
降低页面的比重

1去除不必要的空白和注释, 将inline的script和css放到外部文件中。 HTML Tidy这个工具可以用来自动的去除空白。还有一些其他的工具能够压缩javascript代码,比如将比较长的标志符换成短的,通过这种方式,尽量的减少页面的比重。

减少文件的数量
将少一个webpage被加载时所需要的下载的文件数量,有些browser具有cache的设置,如果一个css或是javascript文件没有被改变的话,它就不会再去下载一遍。通过这样的设置,也可能减少文件下载的数量。

减少Domain查询
对于每个Domain的查询,都需要去检索DNS, 过多的Domian查询会导致页面加载速度变慢。

缓存重用的内容
确保所有可以被缓存的数据都已被缓存,并在恰当的时间过期。
尤其要注意的是:Last-Modified header,它会记录下静态最近被改动的时间,而对于大多数web服务器来讲,都会默认的为静态文件提供这样的头。

js:避免使用eval或者是函数构造器
js解释器在执行代码前,会进行类似预编译的操作,首先会创建一个当前执行环境下的活动对象,并将那些用var声明的变量设置为活动对象的属性,但是此时这些变量的赋值都是undefined, 并将那些以funciton定义的函数也添加为活动对象的属性,而他们的值真是函数的定义。
使用eval时,传递给它的string内容,因为无法进行预编译,所以解释器也无法丢代码进行优化。这样的结果就是eval的效率相当低。
同时,在所以可以用string代替函数的地方,都不要用string来代替,而应该直接传一个函数过去。

js: 尽量使用局部变量而非全局变量
局部变量的查找速度比全局变量高出许多。

举个例子
var aGlobalVar = 1;

function doSomething(val) {
  var i = 1000;
  var agv = aGlobalVar;

  while(i--) {
    agv += val;
  };
  aGlobalVar = agv;
};

doSomething(10);


js: 尽量不要使用String的+操作。
可以用数组的join方法来替代, 可以大幅提高效率。
function StringBuffer() {
  this.buffer = [];
}

StringBuffer.prototype.append = function append(string) {
  this.buffer.push(string);
  return this;
};

StringBuffer.prototype.toString = function toString() {
  return this.buffer.join("");
}

var buf = new StringBuffer();
buf.append("hello");
buf.append("world");

alert(buf.toString());


js: 如果需要对某个String类型的变量调用很多次其方法时,尽量采用new String的方式创建。 否则每次调用该变量的String方法,都会先做一次类型转换。

js: indexOf方法比match方法快,尽量避免match一个很大的String。 同时正则表达式的创建也是需要时间的,因此尽量只产生一次。

DOM: 减少往DOM tree上添加节点的次数,尽量先生成好子tree,然后一下子append上去。或者通过cloneNode的方式先把node拷贝出来,进行修改,再重新replace上去。
var foo = document.createDocumentFragment();
foo.appendChild(document.createElement('p'));
foo.appendChild(document.createElement('p'));
foo.firstChild.appendChild(document.createElement('p'));
document.body.appendChild(foo);


var original = document.getElementById('container');
var cloned = original.cloneNode(true);
cloned.setAttribute('width', '50%');

var elem, contents;
for(var i = 0; i < textlist.length; i++) {
  elem = document.createElement('p');
  contents = document.createTextNode(textlist[i]);
  elem.appendChild(contents);
  cloned.appendChiled(elem);
}

original.parentNode.replaceChild(cloned, original);


DOM: 如果需要改变多个style属性,尽量一次性完全改掉,而不是一个一个的改,因为每改一个,都会导致页面的重绘。
有一个解决办法就是,为该elements设置两个class,当发生变化的时候,直接改掉它的class就好了。
或者将所有的新属性拼接成string,设置到style中。elt.style.cssText.

js: 将scripts放到文件最底下。 这样就可以保证html+css最先被加载。

分享到:
评论

相关推荐

    HTML 提高页面加载速度的方法

    在当今这个信息高速发展的时代,网页加载速度已成为用户体验的一个重要组成部分。一个加载速度慢的网页会让用户失去耐心,从而提高跳出率,降低转化率。因此,了解并掌握如何提高HTML页面加载速度的方法就变得尤为...

    提高页面加载速度的若干方式 .doc

    提高网页加载速度是提升用户体验和网站性能的关键因素。以下是一些针对HTML代码和后台ASP.NET逻辑的优化策略,旨在加快页面加载效率。 1. **兼容性优化**:确保页面在不同浏览器如IE6、IE7和Firefox之间具有良好的...

    apache模块 合并多个js/css 提高网页加载速度

    Apache模块mod_concatx是针对网页优化的一个利器,它专门用于合并多个JavaScript(js)和样式表(css)文件,以此来提升网页加载速度。在现代网页设计中,为了实现复杂的功能和美观的界面,通常会引入大量的外部js和...

    学会这11招提高网页加载速度不是问题.docx

    ### 提高网页加载速度的11个技巧 #### 一、合并JS文件和CSS - **定义**: 将多个JS文件和CSS文件合并成单个文件。 - **优点**: 减少HTTP请求次数,加快页面加载速度。 - **实现方法**: 使用自动化工具如Gulp或Grunt...

    提升WKWebView加载速度.zip

    在用户实际访问页面之前,可以预先初始化WKWebView或者加载一个简单的HTML页面,使WebKit引擎处于就绪状态。这样,当真正需要加载页面时,可以显著减少启动时间。例如,WebViewWarmUper-master项目可能就是一个实现...

    延迟加载 html优化

    在现代网页设计中,优化用户体验和提升页面加载速度是至关重要的。"延迟加载"(Lazy Loading)技术就是一种有效的HTML优化策略,它旨在减少页面初次加载时的数据量,提高页面的响应速度,进而改善用户的浏览体验。...

    提升页面加载速度的插件InstantClick

    网页加载速度对于用户体验至关重要,快速的页面加载能够提升用户满意度,降低跳出率,从而对网站的整体性能产生积极影响。InstantClick是一款旨在优化网页加载时间的JavaScript插件,它通过巧妙的技术手段显著提升了...

    四款由html+css+js实现的精美网页加载页面动画源码

    本资源提供了四款由HTML、CSS和JavaScript共同实现的精美网页加载页面动画源码,旨在帮助开发者或设计师打造更具吸引力的网站。 1. HTML基础与结构 HTML(超文本标记语言)是网页的基础,负责构建页面的结构。在这...

    打包多CSS或JS文件以加快页面加载速度的Handler (asp.net)

    在网页开发中,提高页面加载速度是提升用户体验的关键因素之一。为了实现这一目标,开发者经常采取将多个CSS或JavaScript(JS)文件打包成一个文件的方法,这样可以减少HTTP请求的数量,从而加速页面的渲染过程。在...

    酷炫 html5页面加载 loading动画效果 demo 基于原生无第三方依赖

    对于JavaScript,我们要注意避免阻塞DOM解析,可以考虑使用异步加载或 defer 属性来提升页面加载速度。 最后,为了便于开发者参考和学习,项目可能提供了一个在线预览链接,如给出的"详细介绍参考 ...

    页面加载中js 页面加载中js 页面加载中js

    因此,将脚本放在`&lt;body&gt;`标签底部或使用`async`或`defer`属性可以提高页面加载速度。 2. **异步加载(async)**:通过设置`async`属性,JavaScript脚本将不会阻塞页面的其余部分加载,而是与HTML并行下载和执行。...

    html5实现的页面滚动图片动画加载特效源码.zip

    这种技术只在图片进入可视区域时才开始加载,避免了一次性加载所有图片导致的页面加载速度慢的问题。结合HTML5的`data-*`自定义属性,可以将图片的URL存放在元素上,待到需要时再由JavaScript提取并插入到`&lt;img&gt;`...

    提高网页打开速度的一些小技巧

    1. **优化图片**:图片是网页加载速度的主要影响因素。使用恰当的格式(如JPEG、PNG或WebP),压缩图片大小,同时保持良好的视觉质量。还可以利用CSS精灵技术,将多个小图合并为一张大图,减少HTTP请求。 2. **减少...

    六招提高网页加载速度的小技巧

    提高网页加载速度是每个网站管理员需要关注的重要问题。网站加载速度的快慢直接影响用户体验和搜索引擎排名。下面详细解释六个提高网页加载速度的小技巧: 1. 优化CSS 层叠样式表(CSS)是定义网页内容如何显示在...

    手机页面预加载效果

    5. **服务端渲染(SSR)与客户端渲染(CSR)**:服务端渲染可以在服务器端完成页面的HTML渲染,然后将已完成的部分传递给客户端,减少浏览器的工作量,加快首屏加载速度。客户端渲染则依赖于JavaScript,适用于更...

    提升JSP页面响应速度的七大秘籍绝招

    有的浏览器支持 gzip 进行来对 HTML 文件进行压缩,可以减少数据传输的时间,从而提高页面响应速度。 秘籍五:使用缓存机制 缓存机制可以减少数据库查询的次数,提高页面响应速度。可以使用缓存框架,如 EhCache、...

    页面加载进度条

    优化网络请求、压缩代码、减少HTTP请求、利用缓存等方法可以提高页面加载速度,从而使得进度条更快达到100%。 7. **第三方库和工具**: 许多前端框架和库提供了现成的进度条组件,如React的NProgress、Vue的vue-...

    优化Jquery,提升网页加载速度

    为了提升网页的加载速度,我们可以通过优化jQuery的使用方式来实现。在前端开发过程中,jQuery是一个极为流行的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互。然而,不当的使用习惯可能会导致性能...

    html图片懒加载

    HTML图片懒加载是一种优化网页性能的技术,主要...综上所述,HTML图片懒加载和echo.js库相结合,能有效提高网页加载速度,改善用户体验。开发者只需要遵循上述步骤,就能轻松实现在自己的项目中应用图片懒加载功能。

    6种显示网页正在加载中的代码

    在网页设计中,当用户点击链接或提交表单时,页面加载的过程可能会花费一些时间,尤其是在数据量大或者网络...同时,优化页面加载速度也是提高用户体验的重要一环,因为即使最漂亮的加载指示器也无法弥补长时间的等待。

Global site tag (gtag.js) - Google Analytics