我可以使用什么技术来使重js的页面在移动设备上表现良好?
What techniques can I use to make JS-heavy pages performant on mobile devices?
我有一个网站,涉及大量的JS代码(约100K,包括jQuery)。当我在手机或平板电脑上浏览类似的网站时,我通常会对它们的缓慢速度感到失望。我希望我的网站在移动设备上表现良好(在页面加载时间和响应性方面),而不需要开发单独的"移动友好"版本的网站或交换大部分代码。
当然,有无数的性能技术适用于所有环境。我想听到的是我想在移动/蜂窝环境中为性能做的事情,而我不想在桌面/宽带环境中做的事情。
这里有几个我正在寻找的例子:
- 设置
jQuery.fx.off = true
跳过动画 - 禁用
box-shadow
,text-shadow
和border-radius
等密集CSS效果
还有什么?
延迟是移动环境中的杀手,所以首先要关注的是减少请求,例如:
内联CSS和JS,然后将它们分开并缓存到本地存储(Bing mobile会这样做)
或者内联JS并在注释中包装,然后删除注释并评估JS(移动gmail曾经这样做-不知道它是否这样做)
使用data-uri的图像
从jquery切换到更精简的框架,如zepto.js
不要使用大的-ve偏移来隐藏项目。
如果你从Velocity EU找到@standardista的演示,它包含了一系列其他的想法。
您真的无法找到仅针对移动设备的优化。你提到的两种方法,禁用动画和密集的CSS效果,同样可以在速度较慢的桌面电脑上提高响应速度。同样,针对移动设备所做的任何其他优化也将提高桌面PC的性能。
话虽如此,我能想到的唯一对移动设备特别有利的半优化是减小页面的物理大小。这样人们就不用浪费时间来浏览你的页面的不同部分了。
另外,为了添加到您的列表中,我强烈建议使用Minify: http://code.google.com/p/minify/
看一下我写的关于Javascript性能优化技术的文章。
对于移动设备上的页面加载时间,最相关的部分是管理和积极减少您的依赖。这里有一些技巧:- 编写代码,将库依赖减少到绝对最小。
- 为你的库和模块使用加载后依赖管理器。 最小化你的代码并组合成模块。
对于UI响应性,您希望关注减少与主机(DOM)对象的交互,以及围绕的技术,从而最大化您的迭代的效率。
- 保持你的HTML超级精简(摆脱所有那些无用的DIV和SPAN标签)
- 存储指向浏览器内对象的指针引用
- 将修改DOM的调用减少到最小,特别是样式更改。
其他部分都是关于创建优化和响应性UI的不同方面的有用内容。
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- FabricJs-限制主对象内添加对象的移动区域
- 如何从画布上的某个移动事件中获取X和Y
- 触摸移动时切换到新元素
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 停止jQuery UI滑块移动超过给定值
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- JQuery移动动态分区页面
- XMLHttpRequest在移动设备上的chrome上不起作用
- 如何使bxslider仅在移动视图中处于活动状态
- css停止图像在滚动中移动
- jquery移动对齐按钮取决于内容大小
- 是否有可能使用Javascript或任何服务器端技术从移动端源代码中删除HTML的某些部分?
- 我可以使用什么技术来使重js的页面在移动设备上表现良好?
- 在Javascript中检测鼠标移动距离的好技术是什么?
- twitter新移动网络体验背后的技术