问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在HTML5中如何提高网站前端性能的示例代码分析

发布网友 发布时间:2023-07-31 15:25

我来回答

1个回答

热心网友 时间:2023-08-07 22:10


1. 用web storage替换cookiesCookie最大的问题是每次都会跟在请求后面。在HTML5中,用sessionStorage和localStorage把用户数据直接在客户端,这样可以减少HTTP请求的数据量。而且Web storage还提供了API来操作数据,不像cookie,还得自己写。
// if localStorage is present, use that
if (('localStorage' in window) && window.localStorage !== null) {

// easy object property API
localStorage.wishlist = '["Unicorn","Narwhal","Deathbear"]';

} else {

// without sessionStorage we'll have to use a far-future cookie
// with document.cookie's awkward API :(
var date = new Date();
date.setTime(date.getTime()+(365*24*60*60*1000));
var expires = date.toGMTString();
var cookiestr = 'wishlist=["Unicorn","Narwhal","Deathbear"];'+
' expires='+expires+'; path=/';
document.cookie = cookiestr;
}2. 使用 CSS动画,而不是JavaScript动画使用CSS的动画,而不是JS动画。因为某些机器可以对CSS的动画进行GPU加速,而且也减少了JS文件请求。
p.box {
left: 40px;
-webkit-transition: all 0.3s ease-out;
-moz-transition: all 0.3s ease-out;
-o-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
}
p.box.totheleft { left: 0px; }
p.box.totheright { left: 80px; }3. 使用客户端数据库使用Web SQLDatabase或IndexedDB这类客户端数据库,可以减少HTTP请求的数量。向地区列表,好友列表这样的数据就可以直接存储在客户端。有时你也可以使用sessionStorage和localStorage,因为一般来说,这类相比更快。
4. 直接使用JS的新功能JS已经有了很大的发展,比如Array引入了很多新的方法,比如map,filter, forEach等。另外JSON也直接嵌入浏览器了,不需要再引入json2.js文件了。
// Give me a new array of all values multiplied by 10.
[5, 6, 7, 8, 900].map(function(value) { return value * 10; });
// [50, 60, 70, 80, 9000]

// Create links to specs and drop them into #links.
['html5', 'css3', 'webgl'].forEach(function(value) {
var linksList = document.querySelector('#links');
var newLink = value.link('http://google.com/search?btnI=1&q=' + value + ' spec');
linksList.innerHTML += newLink;
});

// Return a new array of all mathematical constants under 2.
[3.14, 2.718, 1.618].filter(function(number) {
return number < 2;
});
// [1.618]

// You can also use these extras on other collections like nodeLists.
[].forEach.call(document.querySelectorAll('section[data-bucket]'), function(elem, i) {
localStorage['bucket' + i] = elem.getAttribute('data-bucket');
});5. 缓存HTML标记通过缓存,把HTML文件缓存在客户端。不过这些缓存的HTML文件只有结构,没有内容,内容需要通过JS操作JSON对象来把数据填入页面中。这样的HTML文件相当于模板。
6. 使用硬件加速现在领先的浏览已经启用了GPU级别的硬件加速,通过某些指令或hack可以打开这些硬件加速。比如CSS中使用3D转换或动画,就可以打开GPU硬件加速。
.hwaccel { -webkit-transform: translateZ(0); }7. 耗CPU的操作用WebWorker来完成对于需要处理比较耗时或耗CPU的操作,使用WebWorker,这个不仅快,而且是在后台操作的,不影响正常浏览器交互。
8. 使用form的新的特性HTML的form加入了很多新的属性、元素和验证功能,使用这些新的功能可以减少JS和CSS的介入。
9. 使用CSS3的替换CSS精灵使用CSS3可以达到一些CSS sprites的效果,也许100字节左右的CSS就可以替换2K的image sprites,而且请求数量也大减少了。
CSS3比较常用的特效包括:圆角,渐变,阴影,透明,变形,遮罩等。
10. 对于实时应用程序,使用WebSocket替换XHRWebSocket最早是用来设计取代Ajax轮询方式的,它比Ajax的好处在于比Ajax轻量,使用更少的带宽。据某些报道,WebSocket比Ajax大约要减少30%的传输量,而且速度也大约要快35倍。爱立信在测试WebSocket性能时发现,使用ping命令都要比WebSocket多消耗3到5的时间,所以非常适合实时应用程序。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
十亿韩元折合人民币是多少阿? 邮政银行卡余额查询 邮政储蓄查询余额怎么查 艰难 的国运与雄健的国民读后感500(把以前与现在作对比) 初一下册人教版 艰难的国运与雄健的国民 读后感300字 今日头条哪个版本的有电脑版电脑版今日头条怎么下载 今日头条在电脑上如何安装今日头条怎样就安装到电脑上了 如何评价武庙? 武经总要前集概述 武经总要军事思想 手机几分之几怎么输入 赤壁之战东风有决定性作用,诸葛亮怎么知道会有东风的? 只欠东风的上一句是什么(八字成语) 都江堰最好吃的冷淡杯 微博竞走金牌榜 我明明得到三块金牌 为什么在金牌榜上一块也看不到... 什么浏览器电视剧更新快 我们的当打之年那个浏览器更新快 如何挑选香菜好吃怎样挑选香菜好吃 关于蝎迪的问题 消防员个人年度总结2篇 大雁塔内部有空调吗 ()建在长安慈恩寺内,原名“慈恩寺塔”;()建于北魏,是我国现存最早的座砖... 不绑定手机号码,如何注册呢? 帮我参谋参谋选那个乒乓球底板合适 如果想要注册一个新的,可自己还没有手机怎么注册? 怎么注册新不用手机号 制冷证能申请国家补贴吗 制冷证可以买吗 没有手机号怎么申请? 冬季的大衣怎么样清洗比较好 纯奶和鲜奶哪个洗脸效果较好?? 用奶牛身上挤下来的鲜奶洗脸美自效果好还是买的纯奶好 香水瓶摔裂了,香水还有好多,请问有没有什么办法可以装到其他瓶子... 大蒜能不能放在冰箱里?怎样储存时间长 三险都是什么 关于路灯上面的喷雾是什么介绍 2022成都东安湖公园国庆灯光秀时间、地点 随机网名有哪些 三胞胎取名字俩男一女,姓南瑞 海蜇不滤食是什么原因 作业帮真的有那么多的功能吗? 谁都不愿做亏本生意,为啥银行允许坏账 我国各级对应d行政级别 为什么国家中小学智慧教育平台看不了 作业帮是不是真的? 打新冠疫苗后多久可以喝酒 四、五月有什么花盛开 傲骨生香四字成语理解 抖音极速版小游戏玩了二十分钟怎么抖音不显示 怎么登录人人视频tv版