如何快速的呈现我们的网页的技巧整理_javascript技巧
前几天小芳同学一直在群发起一些加速的话题,我已经把聊天记录抽出来,正打算整理出份像样的,没想到小芳同学非常速度的出了这篇。我的就省掉了,挖哈哈。
特别说一下了,这些方案并非适合所有的网站,很多部分有的网站还是不要做反而会更好。如果你还有更多的想法,可以到这里讨论或者评论,我只是归档成为方便阅读的,对了论坛和群讨论的另一些结果如果有价值我也会补充进来。
如何快速的呈现我们的网页 作者:flashsoft,(内容被我略修删过)。
一.我们需达解决的麻烦
- 减少HTTP请求数. 减少HTTP请求数有什么好处
- 降低服务器跟客户端的建立和消除HTTP请求和响应Header的开销
- 减少服务器为HTTP连接的进程和线程的开销,如果可能,还会包括GZIP压缩的CPU开销.
- 减小被请求文件大小, 减少请求数据占用的网络带宽.
- 让用户更快的看到想要的结果.
- 提高客户端渲染速度.
- 让浏览器同时能请求更多的数据.
- 提高服务器相应速度.
- 通过版本化控制客户端Cache.
二.如何解决我们的麻烦
A.如何减少HTTP请求数
- 合并JS文件跟CSS文件。
- 合并框架图片以及相对变动较少的图片成一张,通过CSS背景切割来完成渲染,比如:加速图片显示。
- 合理使用本地Cache来缓存JS/CSS/IMAGE。
- 合理使用UserData缓存JS文件,对于FF用户可以单独请求服务器,这样能解决80%用户的问题.代码可以蓉儿(meizz)的js framework1。
- 把JS跟CSS合并成一个文件
B.减小被请求文件大小,减少请求数据占用的网络带宽
- 压缩JS体积:删除JS中空白换行,注释,混淆把长变量换成短变量;
- 压缩CSS体积:删除CSS注释、写法尽量用简写;
- 使用(X)HTML+CSS方式搭建网站结构,提高CSS重用性,来减少(X)HTML文件大小;
- 使用服务器端GZIP压缩JS/ CSS文件,缩小传输文件大小。附注:Apache1跟Apache2的GZIP的效率跟方式不一样的,根据需要自行选择。
嗷嗷补充说明:压缩、合并JS和CSS都由程序处理。而不是自己手动去缩删,不然不利于后期维护。
C.让用户更快的看到想要的结果
用户对于一个站点的白页的忍受时间根据统计是8-12秒。白页的产生可能由于各种原因引起,我们能做的就是怎么让用户能变的稍微能等待更久。
- 方案1.多做一个引导页,让用户体会其中的变化
案例:mail.aol.com中的loading引导页 - 方案2.优先载入页面结构以及结构图片,后一步载入当前页面数据,再后一步载入Iframe,Flash等数据.让用户尽早的看到被打开页面的希望.
D.提高客户端渲染速度
这个问题就比较泛泛了,影响客户端的渲染速度有多方面的,主要目的都是提高程序方面的效率.
- 对于大索引的结构,尽可能的少用索引访问,能用访问兄弟节点的方式尽可能用访问兄弟节点的方式.
- 字符串拼接尽可能用数组方式
- 大规模添加节点数据,请不要使用appendChild方式,尽量使用类似innerHTML的insertAdjacentHTML方式,FF下需修正2
E.让浏览器同时能请求更多的数据.
浏览器默认只是支持单域名同时有两个HTTP请求,使用多域名将能把请求数提高,在网络条件优良的情况下,能更快的下载数据,呈现结果.
F.提高服务器相应速度
对于需快速响应的文件,把其放入快速响应的服务器,应该是不错的方案,优化方案请系统储备组提供.
G.通过版本化控制客户端Cache.
通常js/css这类文件改动比较频繁,但是为了加载速度变快,我们有可能需要设定这类文件的过期时间为几天后,这样我们碰到的问题就是,如何及时更新这些在cache的文件?
通过一个简单的配置,通过修改JS的版本来及时告诉浏览器,这些文件必须重新请求了,不要继续使用浏览器cache中的数据. 方案有好几个:
- 手动改这些js的文件名
- 手动改这些js的路径
- 通过URL Rewrite方式来改重定位js路径
- 通过一个在高响应服务器上的一个js配置告知页面,这个页面该链接哪些JS文件
- 大版本不变,小版本不断追加,等一定时间后,统一更新,高效利用cache
标注
- meizz的js framework还没出正式版,有兴趣在CSDN的页面翻一下
-
Firefox修正方式
<CODE>function addHTML(oParentNode, sHTML) {<BR> if(window.addEventListener) {// for MOZ<BR> var oRange = oParentNode.ownerDocument.createRange();<BR> oRange.setStartBefore(oParentNode);<BR> var oFrag = oRange.createContextualFragment(sHTML);<BR> oParentNode.appendChild(oFrag);<BR> }<BR> else {// for IE5+<BR> oParentNode.insertAdjacentHTML("BeforeEnd", sHTML);<BR> }<BR>}</CODE>
登入後複製

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JavaScript字符串替換方法詳解及常見問題解答 本文將探討兩種在JavaScript中替換字符串字符的方法:在JavaScript代碼內部替換和在網頁HTML內部替換。 在JavaScript代碼內部替換字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 該方法僅替換第一個匹配項。要替換所有匹配項,需使用正則表達式並添加全局標誌g: str = str.replace(/fi

因此,在這裡,您準備好了解所有稱為Ajax的東西。但是,到底是什麼? AJAX一詞是指用於創建動態,交互式Web內容的一系列寬鬆的技術。 Ajax一詞,最初由Jesse J創造

本文討論了在瀏覽器中優化JavaScript性能的策略,重點是減少執行時間並最大程度地減少對頁面負載速度的影響。

本文討論了使用瀏覽器開發人員工具的有效JavaScript調試,專注於設置斷點,使用控制台和分析性能。

將矩陣電影特效帶入你的網頁!這是一個基於著名電影《黑客帝國》的酷炫jQuery插件。該插件模擬了電影中經典的綠色字符特效,只需選擇一張圖片,插件就會將其轉換為充滿數字字符的矩陣風格畫面。快來試試吧,非常有趣! 工作原理 插件將圖片加載到畫布上,讀取像素和顏色值: data = ctx.getImageData(x, y, settings.grainSize, settings.grainSize).data 插件巧妙地讀取圖片的矩形區域,並利用jQuery計算每個區域的平均顏色。然後,使用

本文將引導您使用jQuery庫創建一個簡單的圖片輪播。我們將使用bxSlider庫,它基於jQuery構建,並提供許多配置選項來設置輪播。 如今,圖片輪播已成為網站必備功能——一圖胜千言! 決定使用圖片輪播後,下一個問題是如何創建它。首先,您需要收集高質量、高分辨率的圖片。 接下來,您需要使用HTML和一些JavaScript代碼來創建圖片輪播。網絡上有很多庫可以幫助您以不同的方式創建輪播。我們將使用開源的bxSlider庫。 bxSlider庫支持響應式設計,因此使用此庫構建的輪播可以適應任何

數據集對於構建API模型和各種業務流程至關重要。這就是為什麼導入和導出CSV是經常需要的功能。在本教程中,您將學習如何在Angular中下載和導入CSV文件
