钢盅郭子's profileunoPhotosBlogLists Tools Help
    January 31

    [№0千年老妖猴] 陈冠希事件和《成长的烦恼》

    近来网上点击量和收视率最高的消息莫过于“英皇艺人激情自拍热辣私房照”的泄露了。随着内容不断曝光,先前怀疑照片作假的声音也渐渐小了下去。满足好奇心之余,也让我回忆起20年前的一部美剧《成长的烦恼》也讲述过“明星私生活”的问题。

    记不得是哪一季哪一集的故事了。本喜欢的摇滚歌星要开演唱会,在父亲杰森的帮助下,他不仅顺利得到了观看演出的机会,还能进入后台化妆室和偶像亲密接触。但是一个偶然的机会,他看到了自己不愿见到的事实——他崇拜的偶像人前举止谦恭而私下竟然行为放荡。经过杰森的开导,本终于认清了“明星也是人”的事实本质,也逐渐认识到不能盲目崇拜自己并不熟悉的人或事物。

    想到20年前本所接受的生动的现实教育,再看着百度吧内依然有不少粉丝痴心不改依旧“力挺阿娇”、“相信zbz清白”……的言论,使我不免产生一种悲观的情绪。

    现在想来,我对明星的看法,很大程度上受了这部电视(用时髦语说就是美剧)的影响。

    --
    由 钢盅郭子 于 1/31/2008 12:52:00 下午 在 №0千年老妖猴 上发表

    [№0千年老妖猴] 【传】迎击风雪 回家过年——谷歌紧急推出春运交通图帮助出行

    迎击风雪 回家过年——谷歌紧急推出春运交通图帮助出行

    2008年1月30日 上午 12:37:00 发表者:谷歌中国地图“抗击风雪 回家过年”临时小组

    回 家过年,似乎是我们每个人过年时不可动摇的情结,与往年不同,今年回家的路显得格外长、格外难,春运的焦点不再是买票难,而是行路难,由于我国中部和南方 罕见的连续暴雪灾害,造成高速公路拥堵、封路,火车飞机停运或延误,并导致数以万计的春运旅客滞留在了回家的路上。今天,我们谷歌地图工程团队紧急推出"春运交通图", 以标注式电子地图的形式提供了全国春运沿线各主要城市的天气和交通整合信息。这是周二上午谷歌的工程师李双峰和陆韵晟讨论时萌发的想法,随后大家就自动组 成一个临时小组,下午紧急推出了这个页面,我们衷心希望能帮助那些正在路上或者准备回家的朋友们及时了解路况信息,提前制定合理的出行计划,抗击风雪回家 过年。

    在谷歌"春运交通图"上,我们以图标的形式在原有的电子地图上增添了与天气信息相关的信息。点击春运沿线重要城市上方的天气图标,地图上就会弹出这个城市详细的天气情况。







    在重要的交通枢纽上方,大家还可以看到一些火车、汽车或飞机状的小图标,打开它们则能了解该地交通的最新情况,如停止售票、关闭机场和汽车停运的时间和原因,停运的车次,车站或机场滞留的旅客人数以及在何处退票等。




    "春运交通图"上还标出了主要的铁路、高速公路和国道,如果铁路或公路被"加红加粗"、那就说明它可能处于封路或受阻状态。点击后即可了解滞留人数、目前情况、持续时间。




    除了这些图标信息外,谷歌"春运交通图"左侧列出了和春运相关的、涉及天气及交通的标题,例如"上海停售长途火车票"或"南京机场关闭",不必费力放大、缩小和拉动电子地图来寻找关注的城市和地区,只需点击这些标题,电子地图就会自动平移到相应的城市或地区,弹出详细的信息。




    如果您了解最新的天气、交通情报,欢迎发送到chunyun.china@gmail.com,经过核实无误后,我们会把它更新到"春运交通图"上。希望通过我们的技术能为大家提供一点帮助,祝愿所有的朋友都能安全顺利地回家,预祝大家春节快乐。

    春运交通图:ditu.google.cn/chunyun

    <br>



    请到谷歌中国员工维护的春运交通图查看大图,如果您有最新的消息,欢迎发送邮件至chunyun.china@gmail.com


    --
    由 钢盅郭子 于 1/31/2008 10:29:00 上午 在 №0千年老妖猴 上发表

    January 30

    [№0千年老妖猴] 大家都哭了,只有……笑了

    发改委说经济快速,国务院哭了
    国务院说持续生产,能源部哭了
    能源部说价格平稳,电力部哭了
    电力部说设备齐全,交通部哭了
    交通部说天有不测,气象局笑了

    --
    由 钢盅郭子 于 1/30/2008 02:26:00 下午 在 №0千年老妖猴 上发表
    January 24

    [№0千年老妖猴] 香港三日行

    周末LP去香港参加公司年会,我也沾光在香港转了转。行程很匆忙,除了海洋公园,真正走过的就只有旺角和太平山了。
    短短2天,有幸坐上了顶级BMW跑车,也见到了路边流浪汉的垃圾车;仰望过山顶的豪宅,也路过密集陈旧的廉租屋。感受到商业社会、市场经济、自由竞争的繁荣,也体会到贫富差距、世态炎凉、心理落差……

    感觉好的:
    秩序,违规现象极少(公交车站不见拥挤的人群,只见整齐的长龙)
    方便,指示牌随处可见,道路通畅,布局合理
    安静,整洁(无论室内室外)

    感觉差的:
    早饭吃不惯
    路窄、人挤人
    住得超贵,而且是真正的蜗居

    没有带DC,用DV随意拍了几张,改天上传

    --
    由 钢盅郭子 于 1/24/2008 05:48:00 下午 在 №0千年老妖猴 上发表
    January 15

    [№0千年老妖猴] 推荐词典软件Lingoes(灵格斯)

    这是一个十分小巧(新版本2.1最基本的安装包只有2.9M)的免费词典软件(官方网站
    最明显的使用感受:
    • 小——安装后不包含词典的容量是8.5M
    • 词典可以根据需要自行下载(能找到汉英日法德西意俄,居然还有越泰……顺便暴一下我自己的)
    • 内置全文翻译工具(在线的)
    金山词霸这个巨无霸可以退休了

    --
    由 钢盅郭子 于 1/15/2008 12:56:00 下午 在 №0千年老妖猴 上发表
    January 10

    [№0千年老妖猴] 【转】编写 iPhone Friendly 的 Web 应用程序 (Part 6 - iUI)

    编写 iPhone Friendly 的 Web 应用程序 (Part 6 - iUI)

    Posted: 07 Jan 2008 07:01 AM CST

    iUI是一个针对iPhone Safari的Web开发框架,由Joe Hewitt开发。这位Joe Hewitt曾经参与过Firefox的开发,包括其中的DOM Inspector以及Firebug,后来到了Facebook,为Facebook开发了iPhone专用版本,对iPhone Web开发社区算是作出了巨大贡献。

    样式

    我们继续说iUI这个框架。这个框架所做的事情,就是提供iPhone Friendly的交互方式与样式。为了简单起见,我们先来说说样式方面,iUI提供的不仅仅是一个CSS文件,基于这个CSS文件你所创建的页面能够符合iPhone的人机界面指引,并且看起来的效果贴近iPhone原生的应用程序,从而降低用户学习门槛,避免你自己设计的Web应用对iPhone操作不友善(例如按钮不够大,手指难以点击)。

    交互

    至于交互方面,iUI提供一个基于page的换页导航机制。这里所说的page不是一个Web页面,而是一个<body />内的顶级DOM元素,每一个这样的DOM元素都可以作为一个page,同一时间上仅显示一个page。页面上的所有链接,要么导致page转跳,要么导致整个页面转跳。这种转跳有如下几种情况。

    转跳

    如果链接的href指向的是一个锚点,例如#somePage,那么iUI就会在页面中寻找id="somePage"的page对象,然后进行转跳。

    如果链接的href指向的是站内地址,例如/somePage.html,那么iUI就会使用AJAX的方法加载/somePage.html的内容并追加到<body />内,注意,/somePage.html必然是一个文档片段而不可能是完整的XHTML文档,否则把<html />追加到<body />下就是错误的了。追加的内容内可以有多个page,如果其中一个有 selected="true"的属性,那么接下来将显示该page,否则显示追加内容中的第一个page。

    最后一种情况是指向站内地址,但是有target="_replace"属性。iUI在看到target="_replace"属性后,就会知道该<a />所在的page内直属元素要被删除,并且替换为目标页面的内容。在这里用CSS来解释一下所谓的直属元素,body > ul#somePage > li > a[target="_replace"] ,这里<li />就是<ul id="somePage />的直属元素了。这种转跳通常用于曾亮加载,例如iPhone内置的Mail打开邮箱后自动加载50封邮件,点击more之后再加载50封,Web界面上就可以通过这种方式实现——一个<ul />内包含51个<li />,前面50个对应50封邮件,最后一个<li /> 包含<a target="_replace" />的more链接,目标页面就是下50封邮件的<li />

    在转跳的时候,iUI提供了一种很好看的效果,你能够看到当前page从屏幕左边移出去,新的page从屏幕右边移进来,好像PowerPoint的某种幻灯片切换动画那样。如果添加了axis="y"属性,page还能够子底向下滚动。

    历史记录

    AJAX式的页内内容更新不是不好,问题就在于浏览器无法自动保存历史记录,导致前进后退按钮实效。iUI已经解决了这个问题,上述3种转跳中的前两种iUI都会自动创建新的hash以便创建历史记录,hash默认就是#_pageId的形式,如果当前显示的page没有id,那么hash就按照增量自动分配id。

    在拥有历史记录之后,用户就可以通过浏览器的后退按钮向前翻页了,此时相当于加载前面的page,iUI知道这是一个后退操作,就会提供反向的滚动效果(自左向右或自上向下)。

    如果我访问页面的顺序是A > B > C > D > B,那么历史记录会如何呢?历史记录会变成A > C > D > B,也就是说第一次访问B时B从历史记录中删除并重新添加到最前的位置了。

    演示

    说了那么多,我们来看看iUI的实战效果吧!又是Facebook或者Digg的iPhone版?不是,我们来看看自己利用iUI开发一个小应用的效果以及成本如何。就在上个周末,我花了不到20小时做了个名为iBaidu的小东西,自动抓取Baidu的搜索结果与排行榜并以iPhone friendly的方式显示出来。以下是发布到YouTube的演示视频:

    服务器端使用的技术是Ruby on Rails以及ASP.NET。为什么需要ASP.NET?这是一个很郁闷的问题,因为Baidu是基于GBK的,而RoR的编码转换能力其若无比,我懒得花时间去寻找适合的转码库,因此直接拿了ASP.NET来做抓去代理,抓取的时候顺便做一下编码转换。如果不是编码问题,那么只需要RoR就能轻松完成任务。

    小结

    在这篇文章中,我们已经看到了如果使用RoR搭配Prototype,不好意思,iUI才对,要设计一个iPhone friendly的Web应用程序是多么地容易,开发过程也相当敏捷。如果你喜欢iPhone开发系列的文章,欢迎订阅:



    --
    由 钢盅郭子 于 1/08/2008 09:24:00 上午 在 №0千年老妖猴 上发表
    January 06

    [№0千年老妖猴] 【转】某人对四大杀毒软件的评价(卡巴 麦咖啡 诺顿 nod32)

    一、卡巴就好象西毒,凶猛强悍,神功盖世,对敌决不留情,出手狠辣,招招夺命,绝少失手,不愧为一代枭雄,但毕竟练的不是纯正内功,容易走火入魔,导致系统出问题。

    二、麦咖啡就象东邪,玉树临风,俊朗潇洒,对敌招式繁多,机关重重,杀伐决断从不迟疑,为江湖第一机智聪明之人,但因其心机太深,令人难以掌握。

    三、诺顿就象南帝,雍容华贵,稳沉厚重,胸怀博大,练的是纯正内功,靠的是教化感人,对敌有慈悲心肠,一般采取隔离教化,使其不再作恶,很少杀人,称的上是一代宗师,但因其过于敦厚,不仅自己活的累,别人也为他感到累。

    四、nod32就想北丐,来无影去无踪,潇潇洒洒,笑傲江湖,对敌用的是逍遥游和打狗棍法,江湖上少有对手,但因其过于轻浮,难免误事。

    国产的就像全真七子 ,一起上还凑合。

    --
    由 钢盅郭子 于 1/06/2008 01:43:00 下午 在 №0千年老妖猴 上发表

    [№0千年老妖猴] 【转】看看你有没有潜质成为亿万富翁(资本运作题)

    某人用2000元买了一匹马,结果没有养好死了,于是他想要把钱在挣回来,试问一下自己,如果是你,你如何做?
    ——在所谓的标准答案之外,有多种多样的思维方式。

    -----解读-------
    大部分人如果马死了,就认赔算了
    亿万富翁的思维特点却是要扳回来
    如果你有这个思维,就是百万富翁的命了,剩下的就是想办法了

    -----提示-------
    这个世界上来钱最快的途径是资本市场
    世界最富有的人除了有垄断资源以外,都是靠资本市场达到顶峰的

    -----以下是一些回答以及相应的分析----------
    1、用20000买一匹死马,当大家认可这个价格后,再以40000卖出这两匹死马

    这类思路是很有潜力的。这种思路的本质是“价格是相对的”
    一个产品服务,价格本身是由市场决定的,同时,市场是可以操控的
    如果市场普遍对一个st股票表示1000倍PE可以接受,那么庄家在800倍PE时候就很自然吧杠铃送给你
    如果大家普遍认可上海房价5万/米 庄家3万卖给你,你会觉得发财了
    所以我个人觉得,这种思路是可以作为答案的。但是
    这种操作需要具备两个条件1,有能力影响控制市场;2,流通性过剩
    在一个干巴巴的市场里,交头低迷的环境下,要培育一个泡沫市场是很困难的。


    2、 把马宰了,做假的虎骨酒等等; 先把马头砍下做标本,在把马皮扒了做袋子,在把一般马肉卖了,一半用来引野狗,在把马鞭送楼主,马骨煮汤开汤铺; 把马做成标本...卖给动物博物管

    这些答案,搞得好也可以收回成本
    这种思路的本质在于集中采购和分销
    菜场里面卖肉卖菜的,场子里面卖电脑搬砖头的,大多靠这种赚钱的。
    这种人的做法就是慢慢积累,滚雪球。
    买1块cpu和买100块cpu的价格是不一样的,资金足够大,你的出货价格,有可能是别人的进货价格
    这种运作的方法缺点是人的精力牵扯太多,太辛苦,积累慢,竞争激烈

    3、 其实这匹死马,就是一个暂无赢利能力甚至负资产的公司。所要做的就是怎么整合一下把它作为一个概念甚至有赢利能力的公司卖掉

    赞同这种看法。所以st金泰跟老黄就勾搭一块了,结果连续40多个涨停,市值迅速超过万科。如果靠实业要几辈子辛苦工作啊?

    --
    由 钢盅郭子 于 9/07/2007 02:33:00 下午 在 №0千年老妖猴 上发表
    January 04

    [№0千年老妖猴] 色戒中最让我欣赏的

    是音乐

    童话的浪漫,现实的残酷,性爱与生死交织在一起,教人难舍难分,欲罢不能

    我看过的电影不多,隐约感觉色戒的配乐和宫崎骏电影中配乐的风格很像

    --
    由 钢盅郭子 于 1/04/2008 01:21:00 下午 在 №0千年老妖猴 上发表
    January 03

    [№0千年老妖猴] 【转】编写 iPhone Friendly 的 Web 应用程序 (Part 5 - 交互入门)

    编写 iPhone Friendly 的 Web 应用程序 (Part 5 - 交互入门)

    Posted: 28 Dec 2007 11:41 PM CST

    我们已经研究过XHTML和CSS了,现在开始看看最后一部分,也就是JavaScript,以及它所提供的交互能力。

    无AJAX交互

    第一种我们要看的交互,是完全不使用JavaScript,这其中一个例子就是GMail。GMail的iPhone版其实就是由普通的GMail移动版修改过来的,界面上更贴近桌面版GMail了,然而交互性并没有怎么提高,每一个点击都对应一次刷新,没有任何AJAX可言。

    事实上,不用任何AJAX效果并不会让你的iPhone Web App低人一等,如果有人讥笑你的应用没有引入任何AJAX功能,你可以直接跟他说"GMail也没有"。因此,如果你在开发的过程中决定不把任何时间投入到AJAX相关技术的研究,这是没问题的,确保你的服务器响应速度,并且交互设计得当,那就行了。

    以服务器端为中心的AJAX

    接下来我们看看另外一些应用,例如之前说到的几个,就拿最简单的AppMarks来说说吧。首先,使用User Agent Switch更改你的Firefox的user-agent属性,伪装为iPhone,然后打开AppMarks,并且打开Firebug。接着点Menu -> Add -> Browse,看到出现AJAX请求了吧?猜猜这个请求是什么类型的,面向内容(传输更新上去的XHTML)、面向脚本(传输进行更新操作的JavaScript)还是面向数据(传输更新相关的JSON)?答案是——面向内容的!

    这可是Web App哦,不是一般带有一点点AJAX的网页哦,我们要MVC,我们要"先进"的面向数据,为什么要"落后"的面向内容呢?至今为止,我们能够看到的大部分iPhone Web Apps,都将MVC保留在服务器端了,客户端唯一需要知道的就是内容更新,不存在任何的客户端MVC模型。暂时我还没看到有面向脚本或者面向数据的,如果你见到有应用这样做了,请告诉我。

    我们继续说MVC的事情。现在大多应用的设计方式是这样的:每一个应拥有一个view framework,然后每一次点击所作的操作就是切换view。例如刚才说到的AppMarks,从Menu进入Add是一个view切换,不过因为Add这个view的内容是固定的,因此一早就包含在页面里,不用AJAX请求直接加载就行了。另外一种情况,就是好像加载Browse那样,是需要AJAX把view请求过来才能加载的。除了切换view,我们还需要action,例如提交数据就一定需要action的。说到这里,感觉是不是和RoR或者类似框架扯上关系了?事实上,RoR,或者类似框架,确实很适合用来做iPhone Web Apps。

    以客户端为中心的AJAX

    那么除了RoR,我们还有别的选择吗?我们可以选择使用一些客户端框架来实现类似的效果。这样说吧,类似RoR那样每一个view都是一个模板,但不是rhtml,而是普通的html,没有复杂逻辑,点击连接后不是由RoR引擎调在服务器端用rhtml,而是客户端自己直接拦截了链接点击并用AJAX的方法去请求该html然后更新内容。这样一个框架,可以在Wrox的 Professional iPhone and iPod touch Programming : Building Applications for Mobile Safari一书中见到。这本书写着2008年1月出版,但实际上已经出版,并且可以下载源代码。我暂时还没办法买到这本书,但源代码中就包括了这样一个客户端框架。

    然而,这种以客户端为中心的做法并没有真正在客户端引入一个MVC,它只是简单地把服务器端的MVC裁减掉了,服务器端只能简单的发送内容或响应提交,因此只适用于比上面的以服务器端为中心的模型更简单的情景。如果你正在编写的应用不涉及大量的提交操作,或者根本就是Web1.0网站,我的意思是,单向传递信息不接受任何用户提交的网站,那么这种轻量级的模型就非常适用了。

    小结

    在这次的文章里,我们介绍了三种常见的iPhone Web Apps交互方案,没有哪一个是绝对更好或者更坏的,按照你当前开发的应用做出选择吧。将来我们写文章深入探讨其中的一些实现细节,或者是交互模式,但前提是我先完成了几个iPhone Web Apps。欢迎订阅本系列文章:



    --
    由 钢盅郭子 于 12/30/2007 11:21:00 上午 在 №0千年老妖猴 上发表

    [№0千年老妖猴] 【转】编写 iPhone Friendly 的 Web 应用程序 (Part 4 - CSS)

    编写 iPhone Friendly 的 Web 应用程序 (Part 4 - CSS)

    Posted: 27 Dec 2007 12:54 AM CST

    说到编写CSS,大家的第一反应肯定是——有没有选择性CSS。有!我们可以设计一个CSS,使得只有iPhone上的Safari会采用它,其他浏览器都会无视它,这样我们就可能可以复用现有的XHTML页面代码,仅仅为它们引入新的CSS就能够适用于iPhone,无须重新编写页面。这个选择性CSS链接语句如下:

    <link media="only screen and (max-device-width: 480px)" href="small-device.css" type= "text/css" rel="stylesheet" />

    Safari是支持media选择的,only screen声明该CSS仅用于屏幕显示(不用于打印),同时Safari还支持max-device-width这样的选项,限定屏幕宽度小于480的设备才采用该样式表,这就把iPhone与桌面浏览器划分开来了。

    另一个做法是在服务器端就判断当前浏览器是否是iPhone上的Safari,从而选择返回哪个CSS文件,这可以通过user-agent进行判断,iPhone的如下:

    Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543 Safari/419.3

    判断了浏览器之后,就可以开始针对Safari编写CSS了。Safari比较爽的一点是对CSS3的支持,设计PC端网页时总是要兼顾那个"后进"的IE,从而避免使用CSS3,或者需要确保IE在无视CSS3规则后仍然正确显示,现在不用为此而头痛啦,只要是Safari支持的就能用,针对一个浏览器设计就是比针对一堆浏览器设计要爽!

    CSS3

    接下来我们就列举一下Safari支持的CSS3属性吧:

    边框

    背景

    色彩

    • HSL - HSL色彩
    • HSLA - 带Alpha通道的HSL色彩
    • opacity - 透明度
    • RGBA - 带Alpha通道的RGB色彩

    文本特效

    用户界面

    • -webkit-box-sizing - 可以让盒模型变得基于边框而非内容
    • resize - 让用户可以更改盒的大小(iPhone上不支持)
    • outline - 设置盒的外边框

    选择器

    Safari支持大部分的CSS3选择器,你可以自己使用桌面端或iPhone上的Safari打开CSS Selectors Test进行测试,桌面端与iPhone上的Safari测试结果是一致的。Safari完全通过测试的CSS3选择器包括:

    *, E, .class, #id, E F, E > F, E + F, E[attribute], :link, :visited, :before, ::before, :after, ::after, :first-letter , ::first-letter, :first-line, ::first-line, E - F, :root, :not(), :target, :enabled, :disabled, :checked

    其它

    • media - 根据media选择性加载CSS
    • multi-column - 内容分栏支持(iPhone上不支持)

    还有一些Safari自己做的CSS扩展没有列举出来。Safari完整的CSS属性支持列表请看这里:Supported CSS Properties

    表单

    Safari支持对<input />元素比较高自由度的CSS定义,例如这样的:

    实现所需的CSS属性上面已经列举了,所以不再详细说明,灵活运用就是了。值得注意的是,某些<input />的默认背景并非纯白色的,而是半透明的,这使得这些元素能够更好地和不同的背景颜色进行颜色混合。为了说明这一点,请先看白色背景下的示例:

    然后再看看蓝色背景下的:

    小结

    CSS相关的话题也说完了,很简单是不是?大部分针对桌面浏览器进行符合Web Standards页面设计的设计师都能轻易掌握这部分内容,然而这只是实现设计的手段,到底如何设计一个界面,在iPhone上才算是拥有高度易用性的,这才是真正的问题。这个问题我们将在以后探讨,至少现在你能够将你自己的设计在iPhone上准确无误的实现出来了,那么我们下一步就进入JavaScript的讨论环节了。

    本iPhone Friendly专题的订阅地址如下:



    --
    由 钢盅郭子 于 12/28/2007 09:06:00 上午 在 №0千年老妖猴 上发表

    January 02

    [№0千年老妖猴] 【转】编写 iPhone Friendly 的 Web 应用程序 (Part 3 - XHTML)

    编写 iPhone Friendly 的 Web 应用程序 (Part 3 - XHTML)

    Posted: 26 Dec 2007 11:11 PM CST

    在接下来的两篇文章中,我们将探讨iPhone上的Safari所支持的XHTML与CSS,之后才进入JavaScript的讨论。作为一款现代化的浏览器,Safari当然是基于标准的,那就让我们看看Safari支持哪些标准吧:

    • HTML 4.01
    • XHTML 1.0
    • CSS 2.1 以及部分 CSS 3
    • JavaScript (ES3)
    • DOM (Level 2)
    • AJAX (XMLHttpRequest)

    熟 悉这些标准并且平常也坚持Web Standards实践的朋友估计要笑出来了——就这些吗?我们天天在用啊,还有必要专门写文章来说明吗?事实上,Safari之前作为一款无PC版的浏 览器,一直用户数量就不高,因此对它的研究也就不多,然而Safari其实有不少自己的扩展,因此还是很值得研究的。既然我们是针对iPhone设置,其 实就是针对Safari设计,无需考虑兼容其它浏览器,这时候为什么不好好利用这些扩展增强自己的应用程序的可用性呢?

    好吧,不说废话了,进入Safari对XHTML支持的介绍吧!

    链接

    iPhone对一下这样一些链接有特殊支持:

    邮件

    传统的mailto:地址iPhone将能自动使用内含的邮件程序处理,直接进入编写邮件的界面。完整的mailto:格式请参考RFC 2368

    电话

    iPhone上的Safari会自动对看起来像是电话号码的数字串(包括已经加入连字符或括号格式化过的)添加电话链接,点击之后会询问用户是否想要拨打该号码。如果你不希望开启这个自动识别,可以将它关闭:

    <meta name="format-detection" content="telephone=no" />

    如果你关闭自动识别后,又希望某些电话号码能够链接到iPhone的拨号功能,那么可以通过这样来声明电话链接:

    <a href="tel:13800138000">13800138000</a>

    Google Maps

    Google Maps的地图链接会自动调用内置的Google Maps客户端软件打开,而非在浏览器内浏览。链接可以是一个地点查询:

    <a href="http://maps.google.com/maps?q=cupertino">Cupertino</a>

    也可以是一个路线查询:

    <a href="http://maps.google.com/maps?daddr=San+Francisco,+CA&saddr=cupertino">Directions</a>

    YouTube

    如果链接是指向YouTube视频地址的,将会自动调用内置的YouTube客户端打开播放。能够识别的YouTube地址格式为:

    http://www.youtube.com/watch?v=<video identifier>

    http://www.youtube.com/v/<video identifier>

    其中<video identifier>替换为视频的id。

    图片

    由于用户浏览时有可能使用Wi-Fi,也有可能使用EDGE(GPRS),因此你必须优化你的图片以确保即使是在使用EDGE访问你的网站的用户也能流畅的打开页面。因此你必须优化页面上的图片,尽量减少它们占用的传输带宽。另外Safari本身还对图片有如下的限制:

    • GIF(包括GIF动画)、PNG与TIFF解压后的体积小于2m。意思是,原图的长度乘以宽度再乘以每一个像素的位数,得出来的大小要小于2m。
    • JPEG解压后最大的体积是32m。解压体积大于2m的JPG会被进行二次抽样,最终显示给用户的是二次抽样后的结果。这使得Safari能够显示数码相机直接拍摄出来的照片,但显示时实际上是降低了精度的,以提高程序的执行效率。

    为了尽量提高效率,例如你要将100*100的图片显示为10*10,就要在服务器端执行压缩操作,而不要直接用10*10的<img />来引用100*100的原始图片。

    表单

    text, password, textarea

    在设计文本框的时候,必须记住用户点击后会出现软键盘,这时候可视区域就减少了:

    另 外在文本框中输入时,iPhone提供了自动大写与自动更正两项功能。自动大写的意思是,在输入开始的时候,以及在一个句号并空一个格后,自动会启用 shift,输入一个字母后该shift自动消失。自动修正的意思是,iPhone会自动根据词库,包括自带的以及从你过往输入分析而来的,来对你的输入 进行自动更正。我们都知道用手指点击那么小一个软键盘很容易误按旁边的键,这时候你可以不用忙于修正,只要iPhone提示的自动修正的词正是你想要的, 你就可以按空格然后输入下一个词,iPhone会自动修正前面那个词。

    要关闭这两项功能,可以通过autocapitalizeautocorrect这两个选项:

    <input type="text" autocapitalize="off" autocorrect="off" />

    select

    必须留意到的是,iPhone上的<select />以不同的方式显示,以便于用户操作:

    upload

    iPhone不支持任何的文件上传下载,因此<input type="upload" />总是会显示出来,并且是……disabled的!

    多媒体内容

    iPhone上支持显示的多媒体内容,除了图片还包括QuickTime音频视频以及PDF。

    如 果需要创建视频,可以使用QuickTime Pro。如果你正在使用一台MacBook或者iMac,并且已经将QuickTime升级为QuickTime Pro,可以马上就试一试!你需要做的就是打开QuickTime Pro,然后开始录像,(接着请对着镜头傻笑3秒,或者做点别的),最后选择"Export for Web"。其中iPhone格式与iPhone (cellular)格式分别适用于Wi-Fi与EDGE环境,iPhone在播放时会自动根据当前的环境选择适合的流媒体文件进行下载与播放,另外 poster是指影片播放之前在页面上显示的那一帧静态图片。 导出后文件夹里ReadMe.html说明了如何将这些文件添加到XHTML中。

    (事实上,导出结果中QuickTime控件引用的那个mov文件不包含任何视频数据,它只是一个引用,类似我们编程时所说的引用,用于指向真正的视频文件。不过这个引用指向的是多个视频文件,客户端根据当前的状态自动选择正确的视频文件来播放。)

    其他琐事

    虽然说是琐事,但也必须注意到,这样才能让你的页面更好地受到Safari的支持。这包括:

    • 声明正确的doctype
    • 避免使用frameset
    • 每一个独立的资源文件,HTML、CSS、JavaScript、以及非流媒体的其他多媒体文件,限制在10m之内
    • 顶级入口的JavaScript执行时间限制为5秒,超时将自动终止。
    • JavaScript分配内存上限为10m。
    • 同一时间最多在Safari内打开8个子窗口(同时浏览的页面)。

    小结

    XHTML部分到这里就讲完了,可以看出iPhone对XHTML的支持与桌面端的Safari是类似的,只是加入了更多扩展功能而已。下一期将开始讲CSS,欢迎订阅:



    --
    由 钢盅郭子 于 12/28/2007 09:05:00 上午 在 №0千年老妖猴 上发表