Mobile Web下的编码设计
来源:smbey0nd 发布时间:2010-01-28 10:42:00
在这篇文章中,我将努力揭开Mobile Web开发的神秘面纱,换句话说,也就是为了移动设备上的用户体验可以被接受,代码得怎么设计。我将阐述“Mobile Web”与普通网站的不同之处、可以让网站成功运行在移动设备和桌面浏览器上的基本技巧、一些Mobile Web设计中的建议和禁忌、以及大量资源 – 你可以去找到更多有用的信息。
Mobile Web和普通网站到底有何不同呢?
这是个很好的问题 – 首先,也许我们应该从“什么是Mobile Web”的问题开始。毕竟,用户用移动设备访问的Mobile Web,跟他们在家里用台式机访问的网站是独立的不同的部分。当我说“Mobile Web”时,我指的是“通过移动设备访问的网站”。
在Opera,我们全身心投入而创造出的浏览器允许你查看整个网络,不管浏览设备是否有这个能力。只要你在建立网站时,付出一点儿细心、尊敬并遵循 Web标准,你就可以为所有人所有设备创建只有一个版本的网站 – 唯一的一个网站。但是,有一些例外情况 – 在某些情况下,只有分版本的网站才行得通,一会你会看到这一点。
移动领域的竞争环境并不平衡
在桌面领域,对于我们前端开发者来说,形式正在好转 – 大多数现代浏览器已经对Web标准支持的非常好了,无论是Opera、Firefox(以及其他Gecko内核浏览器)或者Safari(以及其他 Webkit内核浏览器),甚至IE带给我们的痛苦都比原来少了。虽然IE6的用户群体数量仍然非常杯具,但这应该归结于大多数人封闭的使用习惯等因素。但是,移动设备领域在这方面却是不同寻常的:
你拥有能为“Full Web”提供支持的浏览器,像iPhone上的Opera Mobile和Safari。Opera Mobile使用了与桌面版本相同的渲染引擎,所以对标准的支持相差无几。
你拥有并不很爽的浏览器,例如IE,它们对Web标准仅能提供有限的支持。它们中的一部分只支持WAP(例如WinWap),另一些支持其他像 CHTML或HTML-MP这样的标准(例如日本NTT DoCoMo的iMode浏览器),还有一些只支持Web标准中的有限子集(例如Netfront、Pocket IE、以及Blazer)。
最后,你拥有OperaMini,以及其他通过代理机制的浏览器。它主要只是作为连接用户和一个大服务器群的客户端界面。当用户提交一个URL时,客户端会让服务端查找这个页面。然后它会把页面转换成一个轻量级的二进制标记语言,将它格式化成适合移动设备查看的形式,并发送回客户端显示。这种方式的最主要优势,是可以使页面体积减少90% 左右,帮助用户节省很多带宽费用。这种标记语言表明Web标准并不能很好的表现在移动设备上,因为在这种服务的方式下,OperaMini对 Ajax/JavaScript某些方面将支持的不是很好 – 在这儿有更详细的解释。
注意:不要指望你的超级Ajax和DOM脚本动画网站在移动设备上会有良好表现。JavaScript在移动设备上的支持程度千差万别。时刻提供优雅降级吧。这种做法有一个例子叫做Hijax。
我们可以看到,在移动设备的跨浏览器兼容方面,你要思考的问题有很多。但是不要怕 – 我随后的建议会给你指引一个正确的方向;并且随着时间的推移,移动浏览器对标准的支持将会得到改善,届时我们前端开发者真的再也不需要为它们操心了。你问我这一切什么时候会实现?Who knows!


猜你喜欢
- 通过python+splinter,实现在12306网站刷票并自动购票流程(无法自动识别验证码)。此类程序只是提高了12306网站的 <
- 前言相信大家应该都有所体会,在目前的软件项目中,都会较多的使用到对文档的操作,用于记录和统计相关业务信息。由于系统自身提供了对文档的相关操作
- 今天遇到一个问题,使用python的find函数寻找字符串中的第一个空格时没有找到正确的位置,例如:http://zc.whmc.edu.c
- 学习神经网络已经有一段时间,从普通的BP神经网络到LSTM长短期记忆网络都有一定的了解,但是从未系统的把整个神经网络的结构记录下来,我相信这
- 介绍在Python语言中最常见的括号有三种,分别是:小括号()、中括号[]、花括号{};其作用也不相同,分别用来代表不同的Python基本内
- 你可以将FCKEDITOR放置到任何文件夹,默认情况下,将其放入到FCKEDITOR文件夹是最为简单的方法.如果你放入的文件夹使用别的名称,
- 本次薯片会讨论了关于分类与类型的问题。怎么找一个item?页面导航一般分类为主,在具体的分类展示下选择类型:典型例子:炫铃(QQ客户端)当只
- 如何截取字符函数在工作中我们经常会遇到某种情况需要截取字符串中某个特定标签之间的内容(爬虫可能用到的较多),适用于很多情况例如字符串形式的x
- 1.在用windows模式登陆sql server 数据库 简历一个student的数据库,然后新建查询:create table stud
- MySQL有时候忘记了root密码是一件伤感的事,这种情况下,如何重置root的密码呢?找到并编辑mysql的my.ini配置文件,在mys
- 本文实例讲述了Python走楼梯问题解决方法。分享给大家供大家参考,具体如下:# -*- coding:utf-8 -*-#!python3
- Sql Server 中一个非常强大的日期格式化函数: 获得当前系统时间,GETDATE(): 2008年01月08日 星期二 14:59
- 目录准备数据集导入所需的软件包将数据从文件加载到Python变量拆分数据进行训练和测试标记化并准备词汇预处理输出标签/类建立Keras模型并
- 前言random模块实现了各种分布的伪随机数生成器。伪随机数:人类使用算法等方式,以一个基准(也被称为种子,常用的是时间戳)来构造一系列数字
- 写爬虫是一项复杂、枯噪、反复的工作,考虑的问题包括采集效率、链路异常处理、数据质量(与站点编码规范关系很大)等。整理自己写一个爬虫程序,单台
- 整理文档,搜刮出一个vue事件对象、冒泡、阻止默认行为的代码,稍微整理精简一下做下分享。事件对象<!DOCTYPE html>&
- 最近用到Python自动发送邮件,主要就是三步,登录邮件、写邮件内容、发送,用到的库是 smtplib 和 email,直接使用pip安装即
- python爬虫模块Beautiful Soup简介简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数
- 本文给大家分享了好几种复制表结构、表数据的示例介绍,具体详情请看下文吧。1、复制表结构及数据到新表CREATE TABLE 新表SELECT
- 引言今天在使用Pytorch导入此前保存的模型进行测试,在过程中发现输出的结果与验证结果差距甚大,经过排查后发现是forward与eval(