移动web开发介绍——浏览器
前段时间了解学习了一下《移动Web手册》,觉得真的需要这种不是偏向技术、框架或工具的书籍,只是单纯的讲解一些关于移动Web最基本的知识。正好今天整理一部分之前学习过的内容,记录和分享,也方便以后查阅理解。
我们在开发移动端web时,经常跟浏览器打交道,你知道移动端的浏览器有几种类型吗?在测试移动web页面时,我们不能忽略的浏览器又有哪些呢?
在开始之前,我们先简单了解一下移动Web
一、移动Web是什么
1. 移动web和桌面web没有本质的区别,尤其是考虑到 响应式设计 的技术运行我们在大的电脑显示器和小的手机屏幕上使用同一套CSS,我们可以把它理解为“运行在比你听说过的还要多的浏览器上的支持小型触摸屏的网站”
2. 但是移动web开发和桌面开发有些小小的区别,例如
- 如何适配不同大小的屏幕
- 如何兼容安卓的众多版本
- 为什么有些css属性在手机上不生效
- 手机上click事件有延迟
而上面的这些问题,是我们在移动开发中主要关注的话题,这些话题主要分为三类,它们是:
- 浏览器
- 视口
- 事件
先不要着急一口气去了解和解决上面的问题(实际上,移动端web开发的问题可能是变幻莫测的,就浏览器而言,不同的厂商,不同的品牌手机,不同的操作系统,不同的内置浏览器,甚至同一种浏览器的不同版本都有可能对于移动端的某一些样式或事件的支持不同。)本篇不介绍技术,着重介绍的是关于影响移动web开发的环境因素。先了解一下移动世界,这可能会对你进行web开发有所助益。
二、移动端浏览器
浏览器类型
手机上有4种浏览器类型:内置浏览器、可下载浏览器、代理浏览器以及WebView。这些浏览器在某些地方会重叠:一个浏览器不一定非要属于一个类型。 比如:代理浏览器Opera Mini 被很多用户下载,但是在某些功能手机上却是内置浏览器。
下面分别说一下不同的类型浏览器
1.内置浏览器
每部手机都有内置浏览器,也就是说,这个浏览器属于固件,通常是操作系统厂商开发的,一般随着系统升级而升级。下表列举了不同平台手机的内置浏览器:
大多数内置浏览器都被紧紧密集成到底层的操作系统中,也就是说,无法单独升级浏览器。
2. 可下载浏览器
许多浏览器是用户能够下载并且自行安装的。Opera、Firefox、Chrome还有UC,是其中几个重要的浏览器。
在实践中,只有安卓才可能有可下载的浏览器,因为iOS上不允许安装其他的渲染引擎。
可下载浏览器相比于内置浏览器有一个优势,就是只要有了新版本就可以更新。
3. WebView
WebView是留给原生应用的一个操作系统浏览接口。比如,一个游戏的帮助页面可能是网页,游戏应用会利用平台的WebView来展示页面。
苹果不允许iOS设备上安装其他渲染引擎。因此,其他浏览器想要在iOS上安装就必须用苹果的WebView。
4. 代理浏览器
代理浏览器的渲染引擎能够解析和执行HTML、CSS还有JavaScript,但并不是运行在设备上,而是在远程服务器上。
与代理浏览器相对应的是完备浏览器。当用户请求一个页面,浏览器会通过http请求去抓取HTML、CSS、JavaScript还有一些其他资源,一旦一切就绪,就会去渲染和显示页面。这些步骤都是在客户端上进行的,会占用内存、处理器时间和电池寿命。
代理浏览器渲染页面步骤:
(1). 用户请求一个页面不会发送普通的http请求,而是通过一个加密连接发送一个特殊的请求到一个特殊的代理服务器。
(2). 代理服务器会发送正常的http请求给用户希望访问的web服务器,它会请求HTML和其它资源。
(3). 代理服务器包含一个渲染引擎,能够正常渲染页面
(4). 代理服务器压缩渲染页面,成为该网站的某种图片(想象为一个pdf或者一个图像映射)
(5). 代理服务器通过加密连接把这个文件发送到客户端
(6). 客户端把文件展示给用户
代理浏览器优缺点:
优点:致力于为用户省钱。因为代理浏览器所要做的事情就是显示静态文件,允许点击或轻触链接,生成简单UI,所以它是轻量级的,甚至可以跑在低规格的手机上,用户不需要买很贵的智能机就可以访问网页。
缺点:没有客户端交互。任何时候当代理浏览器遇到任何动态的事件时,它就必须的去请求服务器给出新的指示。因此,在触发和执行之间往往会有一秒或者更长事件的滞后 大多数不允许做某些事件,onscroll、resize、mouseout等
三、安卓平台下的浏览器
先说明一下,这里没有介绍iOS下的浏览器,是因为iOS下的浏览器相对安卓而言不混乱。之前也提到过,苹果不允许安装其他渲染引擎。不过基于代理浏览器的特性,苹果上可以安装代理浏览器(但也不是所有代理浏览器都可以)。所以在苹果手机上测试web页面时,我们一般测试Safari浏览器即可,必要时可以测试代理浏览器。
下面来说一下安卓
Web开发者在面对安卓时遇到的问题是,不像其它平台,安卓的内置浏览器的情况很复杂,受到多方面因素的影响,正如前面所提到的,就浏览器而言,不同的厂商,不同的品牌手机,不同的操作系统,不同的内置浏览器,甚至同一种浏览器的不同版本都有可能对于移动端的某一些样式或事件的支持不同。而安卓平台的开放性,让更多的手机厂商,浏览器厂商都可以开发自己的一个浏览器来增加设备或操作平台的价值。这也就造就了安卓市场下的各浏览器的繁复和差异化。(例如,两个不同手机厂商的内置浏览器在针对同一个web样式上做了不同优化处理)
安卓浏览器
1. 安卓Webkit
一个智能手机操作系统需要一个浏览器,因此原始的安卓提供了他自己基于Webkit的浏览器,它没有名字,我们称它为“安卓WebKit”(内置浏览器)。
2. Chrome
基于WebKit的浏览器,谷歌想使用chrome来代替webkit。利于谷歌收集用户数据并提供更强大的广告。但是设备厂商更希望能够自己获取数据,并且是自己的设备与众不同
3. 三星Chrome和其它浏览器
与Google Chrome是不一样的。(版本和一些样式支持的区别)
三个必须测试的浏览器
(1). 安卓WebKit4(富含不同的设备和不同版本的安卓系统)
(2). GoogleChrome
(3). 三星Chrome(三星高端手机)
注:检测用户代理字符串(navigator.userAgent),查看是否包含单词chrome,如果有就是Chrome(不一定是GoogleChrome);如果不包含,就是安卓WebKit。
之前做的PPT的一个知识分享,现在又重新整理了一下,主要是为了记录和重温,不是很详细,还是希望可以帮助感兴趣的童鞋对移动端的一些知识有所了解。
感谢阅读。
移动web开发介绍——浏览器的更多相关文章
- Java Web开发介绍
转自:http://www.cnblogs.com/pythontesting/p/4963021.html Java Web开发介绍 简介 Java很好地支持web开发,在桌面上Eclipse RC ...
- Springboot学习:Web开发介绍
简介 使用SpringBoot: 1).创建SpringBoot应用,选中我们需要的模块: 2).SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来 3).自 ...
- Web开发,浏览器通讯原理及流程那点事,你应该听说下
题外话: 最近园子里,关于.net门槛的文章风风火火,不过这类事情每过段时间就会出来一次,所以酱油都懒的打了. 当然个人也是有想法的,特别是这两天碰巧和一个三四年经验的java开发者呆在一起,对方说. ...
- WEB开发兼容性---浏览器渲染模式—— document.compatMode
document.compatMode主要是用来判断浏览器采用何种方式渲染,它有两种可能的返回值:BackCompat和CSS1Compat,官方对其解释如下: BackCompat:标准兼容模式关闭 ...
- web开发中浏览器跨域问题
<system.webServer> <httpProtocol> <customHeaders> <add name="Access-Contro ...
- Web开发初探(系统理解Web知识点)
一.Web开发介绍 我们看到的网页通过代码来实现的 ,这些代码由浏览器解释并渲染成你看到的丰富多彩的页面效果. 这个浏览器就相当于Python的解释器,专门负责解释和执行(渲染)网页代码. 写网页的代 ...
- 《Python Web开发实战》|百度网盘免费下载|Python Web开发
<Python Web开发实战>|百度网盘免费下载|Python Web开发 提取码:rnz4 内容简介 这本书涵盖了Web开发的方方面面,可以分为如下部分: 1. 使用最新的Flask ...
- Web项目开发介绍及实战项目介绍
引言 本系列课程我们将学些Golang语言中的Web开发框架Iris的相关知识和用法.通过本系列视频课程,大家能够从零到一经历一个完整项目的开发,并在课程中了解实战项目开发的流程和项目设涉及的各个模块 ...
- 在 Web 开发中,img 标签用来呈现图片,而且一般来说,浏览器是会对这些图片进行缓存的。
在 Web 开发中,img 标签用来呈现图片,而且一般来说,浏览器是会对这些图片进行缓存的. 比如访问百度,我们可以发现,图片.脚本这种都是从缓存(内存缓存/磁盘缓存)中加载的,而不是再去访问一次百度 ...
随机推荐
- Cocos2d-x 3.2 学习笔记(六)Layer
Layer 游戏中的背景容器,Layer类是Node类的一个子类,它实现了触屏事件代理(TouchEventsDelegate)协议. LayerColor是Layer的一个子类,它实现了RGBAPr ...
- Cool!15个超炫的 CSS3 文本特效【上篇】
每一个网页设计师都希望创建出让用户能够赏识的网站.当然,这是不可能满足每个人的口味的.幸运的是,我们有最强大的工具和资源.实际上,我们非常多的网站模板,框架,内容管理系统,先进的工具和其他的资源可以使 ...
- Android的UI设计与后台线程交互
本文将讨论Android应用程序的线程模型以及如何使用线程来处理耗时较长的操作,而不是在主线程中执行,保证用户界面(UI)的流畅运行.本文还将阐述一些用户界面(UI)中与线程交互的API.UI用户界面 ...
- Windows Azure Web Site (6) 使用FTP发布Azure Web Site
<Windows Azure Platform 系列文章目录> 笔者在之前的文章中介绍的都是使用IDE,也就是Visual Studio,将本地的aspx发布到Azure Web Site ...
- 关于IHttpModule的相关知识总结
一.IHttpModule相关概述 using System; namespace System.Web { public interface IHttpModule { // 销毁不再被HttpMo ...
- 说说我在项目中为什么不用实体框架,如果说我在诋毁你所爱的EF,请进来.
1.坑多. 这一点没有人会否定.当然你可以说你很牛,但事实不会因为你牛就可以说不存在.从博客园中的博问中大家关于EF的提问量就问题的怪异程度就可以看出来. 1.Entity Framework 查询历 ...
- 大话ASP.NET开发(第一章 html5+css3+解耦问题的探讨)
一.拉近我们的距离 我想,很多人会问,如今IE6还占据颇多份额的中国,html5.css3是否还很遥远?我会很直接告诉他们:其实就在你的眼前.我们来看两个图: ...
- linux专题一之文件归档和压缩(tar、file、zip)
本文主要从以下几个方便来说明文件的归档和压缩,同时比较几种不同压缩方法的压缩比率及特点. 文件归档命令tar,tar.gz源码包的安装管理 创建tar包-解压-查询tar包内容 zip命令的用法 为 ...
- 这些HTML、CSS知识点,面试和平时开发都需要 No10-No11
系列知识点汇总 1.基础篇 这些HTML.CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML.CSS.盒子模型.内容布局) 这些HTML.CSS知识点,面试和平时开发都需要 No5- ...
- 数据结构(C语言第2版)----时间复杂度和单链表
马上要到校招了,复习下相关的基础知识. 时间复杂度是什么? 官方解释: 算法的执行时间需要依据算法所编制的程序在计算机上于运行时所消耗的时间来度量.在算法中可以使用基本的语句的执行次数作为算法的时间复 ...