我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么改善移动设备网页的性能

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么改善移动设备网页的性能

这篇文章主要为大家展示了“怎么改善移动设备网页的性能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么改善移动设备网页的性能”这篇文章吧。

正文

1、桌面网页的性能检测

桌面浏览器使用的页面可以利用一个插件来检测,名为Yslow。Firefox和chrome上都有这个插件。它是Yahoo主导的一个项目,地址是: https://github.com/marcelduran/yslow/wiki

在chrome中安装完YSlow以后,我们打开sina的首页测试一下:

怎么改善移动设备网页的性能

正在加载网页组件……

加载完以后会出来一个分析结果:

怎么改善移动设备网页的性能

可以看到给出来的分数是D级,62分。

YSlow有一套检验页面性能的标准,它会根据标准里面的每一条来检测这个网页,并且根据情况对该网页给出评级和建议。如新浪首页得到的评级和建议分别是:

怎么改善移动设备网页的性能

我们来看看其中的第一条,Make fewer HTTP request给出的具体建议:

Grade F on Make fewer HTTP requests

This page has 19 external Javascript scripts. Try combining them into one.
This page has 33 external background images. Try combining them with CSS sprites.


Decreasing the number of components on a page reduces the number of HTTP requests required to render the page, resulting in faster page loads. Some ways to reduce the number of components include: combine files, combine multiple scripts into one script, combine multiple CSS files into one style sheet, and use CSS Sprites and image maps.

可以看到新浪首页的外链JS文件很多,这会导致很多的HTTP请求。过多的HTTP请求会降低网页的加载速度。

再来看看新浪得到A的条条,比如 Use GET for AJAX requests,得到的夸奖是:

When using the XMLHttpRequest object, the browser implements POST in two steps: (1) send the headers, and (2) send the data. It is better to use GET instead of POST since GET sends the headers and the data together (unless there are many cookies). IE's maximum URL length is 2 KB, so if you are sending more than this amount of data you may not be able to use GET.

新浪其实在很多条条上是做得很好的。不过还是有可以改进的空间。

2、移动设备中网页的性能检测

桌面浏览器可以轻松的安装插件来检测网页的性能,但是移动端的浏览器就不行了。如果想分析某个mobile webpage的性能只有一种方法,那就是分析它路由时候的HTTPRequest和HTTPResponse。大牛们可以试试使用proxy server来读route log分析。不过现在有另外一个选择,那就是使用Blaze。它是一个免费的手机页面性能分析服务,不过一次只能服务一个请求,所以可能需要等待一些时间,不像YSlow那么快。不过得出的性能分析还是不错的。

Blaze的地址是 http://mobitest.akamai.com/m/index.cgi

我们用3g新浪来做测试:

怎么改善移动设备网页的性能

在地址栏中输入3g新浪的地址,然后在后面选择设备的类型。device和location现在都只有两种选择。国内其实也可以开发一个这样的web 服务。

输入好参数后点击

怎么改善移动设备网页的性能

然后就会进入分析,这个过程可能需要几分钟的时间。等待的长度取决于在你前面排了多少个分析请求……这个网站一次只能分析一个页面。

结果出来后,会摘要性地显示这个web页面的平均加载时间和大小:

怎么改善移动设备网页的性能

可以看到3g新浪即使在境外的加载速度也是可以接受的,而且页面大小很小。

我们可以看一下更进一步的性能分析(点击查看HAR报告-HAR:HTTP Archive Report):

怎么改善移动设备网页的性能

可以查看一下统计信息怎么改善移动设备网页的性能

怎么改善移动设备网页的性能

图片还是占了很大一部分页面流量。另外,JS和页面文本本身的大小几乎是相同的,说明3g新浪还是很倚重js的。

现在再用它来试试用移动设备浏览器打开正常的新浪首页会发生什么:

怎么改善移动设备网页的性能

可以看到,页面会出现一个提示,建议用户使用手机触屏版的新浪。

我们再来看看HAR文件,看看它是怎么做到这一点的。

怎么改善移动设备网页的性能

可以看到页面请求先被发送到了一个PWS服务器微软推出的个人web服务器)上,然后该请求被重定向(状态码302)至另一个地址(http://sina.cn)。这些不是关键,看到下面的Request头部中,user-agent给出了发出这个请求所在的设备以及该设备运行的操作系统类型。可以猜想新浪就是利用了这个信息来做判断,以提示用户转用触屏版的sina。

3、移动设备网页的性能瓶颈

分析了若干个页面统计,基本上都类似于下列分布:

怎么改善移动设备网页的性能

移动设备网页的性能显然受到图片文件的影响(HTML文件和JS文件的大小也不容小觑)。另外,如果页面中含有嵌入式的代码,如google地图等,也会额外加载很多你预期之外的内容从而导致网页速度变慢。

4、如何改善移动设备网页的性能

改善移动设备的网页性能也要从图片和嵌入代码块(google地图)入手。

4.1 如何缩小图片的大小以提高移动设备的访问速度?

分为两种情况:

情况一:图片是在CSS中,以background形式给出链接

那么可以使用PS等软件将图片的质量降低以降低图片的大小。

情况二:图片是在HTML文件中以img标签形式给出

对于这种情况,就不能使用替代文件的方式了。因为图片本身可能就不是你服务器提供的,而是外链图片。对于这种情况,可以使用如下方法进行改进:

原来的HTML代码片段:

代码如下:


<img class="lazy" data-src="brews_images/bensons.jpg">


改为:

代码如下:


<img class="lazy" data-src="http://class="lazy" data-src.sencha.io/http://[DOMAIN]/[PATH]/brews_images/bensons.jpg">


sencha.io class="lazy" data-src会自动重新构造图片的尺寸以适应当前设备的屏幕,这就要求你在提供图片源的时候尽量选择清晰的图片。sencha是如何做到自动根据设备重构图片大小的呢?原理很简单,就是在服务器上存储很多设备的型号以及屏幕的尺寸。当浏览器对这个img标签中的图片做出HTTPRequest的时候,sencha可以通过Request头部的user-agent属性获得该设备的型号信息,然后查询到其对应的屏幕尺寸,然后根据这个尺寸对后面的http://[DOMAIN]/[PATH]/brews_images/bensons.jpg图片进行尺寸压缩,然后在返回给浏览器。

这样做的好处是网页设计者只需要提供一张高清的图片,然后就不需要担心它是否能够适应各种设备了,因为sencha会替你做这个resize的工作。

这样做的缺点也是显而易见的,即图片经过了第三方服务器,效率上肯定受到影响。并且这是境外服务,不一定会支持国内的多数国产手机。不过国人倒是可以开发一个类似的web服务来为国内图片做resize。

4.2 如何处理移动设备页面中的地图呢?

这个也很简单,就是做一个之前我们提到的逻辑判断,当屏幕小于一定尺寸时,就将map设为不可见。如:

代码如下:


@media screen and (max-width:480px){

#map{
display:none;
}
}


同样可以这样处理的还有网页头部大大的banner!

代码如下:


@media screen and (max-width:480px){

#map{
display:none;
}
#banner{
display:none;
}
}


5、什么是Mobile-first Responsive Web Design 和 Progressive Enhancement

 5.1 Mobile-first Responsive Web Design

Mobile-first Responsive Web Design 意为 “RWD techniques that start from a mobile template”。就是说RWD的设计应该从mobile的版本开始,慢慢往上增加复杂性。

Very small screens(很早前的nokia和蓝莓手机等):

使用最基本的HTML、最简单的布局、很小图片、有限的css和js

Small screens智能手机:iphone等):

如果手机支持的话可以增加HTML5特性、简单的布局、较小的图片(比very small screen的大一些)、更多的CSS和js

Medium screensipad、tablet之类的

由于有了更多的空间,因此可以考虑增加可选的内容,比如侧边栏什么的。可以使用多栏布局。可以使用较大的图片。

Large screens如桌面显示器、电视等

可以使用宽屏的布局(如三栏或四栏等)、使用大的图片。对于电视用户,要考虑优化导航,因为用户可能是站在10英尺外远程控制页面。

5.2 Progressive Enhancement

Progressive Enhancement将web设计视为不同的层次。

怎么改善移动设备网页的性能

第一层是结构内容,这一层将决定网页的基本结构和内容,如果设计停留在这一层,那么几乎所有的设备都可以打开你的页面。

第二层和第三层是CSS和JS,你无法保证所有的设备都支持这些特性,但若支持,那么用户将获得良好的体验。

很多年来,web开发者们都在前卫的浏览器上开发web应用,而忽略了那些使用旧版本浏览器的用户。(这一情况好像国内不是很严重,大家还是很照顾老浏览器用户的)。Progressive Enhancement的设计理念则是反过来,重视内容,然后再往上增加用户体验。在设备不支持的情况下,至少可以保证页面内容的可达性。

5.3 content-first design

Mobile-first Responsive Web Design和Progressive Enhancement有时又被称为content-first design,这是因为它们都十分重视内容的重要性,并将其排在设计的第一位。一个很好的content-first 应该在网页裸奔的情况下信息组织也井井有条。

以上是“怎么改善移动设备网页的性能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么改善移动设备网页的性能

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么改善移动设备网页的性能

这篇文章主要为大家展示了“怎么改善移动设备网页的性能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么改善移动设备网页的性能”这篇文章吧。正文1、桌面网页的性能检测桌面浏览器使用的页面可以利用一
2023-06-08

改善网页性能:减轻重排和重绘的压力

优化网页性能:减少回流和重绘带来的负担,需要具体代码示例在当前互联网高速发展的时代,网站性能对于用户体验和网站排名来说都至关重要。用户期望能够在打开网站时立即看到内容,而不是等待加载过程。因此,优化网页性能成为了每个网页开发者都应该追求的
改善网页性能:减轻重排和重绘的压力
2024-01-26

小屏幕移动设备网页设计需要注意的事项有什么

小编今天带大家了解小屏幕移动设备网页设计需要注意的事项有什么 ,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“小屏幕移动设备网页设计需
2023-06-08

优化底部导航栏设计以改善移动应用的固定定位功能

固定定位优化移动应用的底部导航栏设计,需要具体代码示例随着智能手机的普及和移动应用的快速发展,人们越来越多地使用手机进行各种活动,如社交、购物、学习和娱乐等。为了方便用户进行操作和导航,移动应用通常都会设计底部导航栏。然而,底部导航栏在不
优化底部导航栏设计以改善移动应用的固定定位功能
2024-01-20

怎么提高Linux下块设备IO的整体性能

这篇文章将为大家详细讲解有关怎么提高Linux下块设备IO的整体性能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。IO调度发生在Linux内核的IO调度层。这个层次是针对Linux的整体IO层次体系来说的
2023-06-16

CSS网页响应式布局怎么实现自动适配Pc/Pad/Phone设备

这篇文章给大家分享的是有关CSS网页响应式布局怎么实现自动适配Pc/Pad/Phone设备的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。index
2023-06-08

Win11无法联网怎么办? win11安装后设备不能上网的解决办法

Win11安装后,不能联网,这是有用户遇到的网络方面问题,不知道什么情况,这篇文章是本站给大家带来的Win11安装后不能联网解决方法。方法一: 1、首先,按键盘上的【 Win + X 】组合键http://www.cppcns.com,或右
2023-05-19

利用vue怎么实现一个桌面向网页拖动文件的功能

本文章向大家介绍利用vue怎么实现一个桌面向网页拖动文件的功能的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。vue是什么软件Vue是一套用于构建用户界面的渐进式JavaScript框架,Vue与其它大型框架的区
2023-06-06

win8系统怎么关闭自动维护来提高性能 win8系统取消自动维护功能的设置方法

win8系统取消自动维护功能的设置方法: 1、在win8传统桌面,右击“开始”菜单; 2、打开控制面板→管理工具→任务计划程序→然后在打开任务计划程序对话框;3、依次点击计划任务程序库M
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录