無標題文檔

Windows7 不完全体验

本人一向很懒,往往对于操作系统没有什么特别的要求。但很惊讶的看见 玉伯 竟然将笔记本和公司的台式机都换成了Windows7。听他的口气似乎 Windows7 真的不错,于是我也尝试着安装并试用了下微软的新系统。使用了段时间以后,说说我的感受和想法。先说明下,我装的是 Windows7 7077 版本(据说现在已经流出微软官方的简体中文版了)。

性能

Vista 的诸多负面评价中很多的一条就是占用系统资源。不清楚 Vista 这情况是否属实(我没怎么用过 Vista,就不评论了),微软也对 Windows7 的一大宣传就是占用资源和系统启动速度大幅度的改进。

https://friable.rocks/_/2009_11_05/595727553b22.jpg

在本人的笔记本上运行 Windows7,发现运行和启动速度和机子上原有的 XP 系统差不多。只不过相对老系统,Windows7 多占用了 200M 的内存。

https://friable.rocks/_/2009_11_05/297917553b2d.jpg

上图是本人机子运行 Windows7 的评分。说道评分在这里说个小插曲,就是忘记装驱动,结果评分得了个 1.0 分,人品爆发了下。

再说下兼容性的问题,这可能是大家都比较关注的。目前为止,似乎我常用的软件都没有发现什么问题。据说甚至 XP 老系统下的驱动都可以安装到 Windows7 下,不过即便如此还是建议使用 Vista 驱动。

体验

https://friable.rocks/_/2009_11_05/976637553b26.jpg

第一眼看过去,Windows7 最惊艳的地方莫过于新的任务栏了。这对于我看来,就是个 Mac OS Dock 的 Windows 版本。不过即便如此,个人还是挺欣喜于这个改进的。有个细节就是将「显示桌面」移动到了任务栏的最右边,也就是屏幕的右下角,以后盲点也能显示桌面了。

https://friable.rocks/_/2009_11_05/652207553b9a.jpg

这里说下有点不爽的地方,就是状态栏的图标折叠方式有些不习惯(众口难调),其实我更喜欢使用 XP 拉伸的方式,至少这样会认为图标都是放在了同个地方。

https://friable.rocks/_/2009_11_05/015707553b22.jpg

「我的电脑」到是改得让我这个 XP 用户有点难受,不过慢慢的使用就适应了。不过惊讶于 Windows7 竟然会认出 iPod 以及我的罗技鼠标,并给它们对应的图标,看来这安装后十几个 G 的容量有大部分就是存放着这些驱动信息。

https://friable.rocks/_/2009_11_05/3746175542be.jpg

虽然是测试版的 Windows7 ,但是还是预装了正式版的 IE8,这对于我等前端而言的确是个好消息。浏览器方面 Windows7 到是不挑剔(也想不出挑剔的理由),Firefox、Chrome、Opera 等我都给它安装上去并能正常的运行。

https://friable.rocks/_/2009_11_05/12436755f2a0.jpg

https://friable.rocks/_/2009_11_05/70289755f296.jpg

微软似乎从来没有放弃家用信息化的念头,「阔别多年」的 Windows Media Center 又在 Windows7 中出现,而此次带来的感受绝对不亚于当年 Windows ME 发布的 MediaPlayer 7 (虽然 Windows ME 本身都说很失败)。

另外八卦个小细节,就是「摇动」当前窗口,就能将「背景窗口」最小化并显示桌面。虽然这感觉没有 Mac 下显示窗口来得优雅(微软的交互能想出这种交互方式也算是有才),但是还是比较实用的。

废话升级

操作系统市场的战斗不必浏览器这块清静。新版的 Ubuntu 9.04 也在近期发布,Windows7 正式发布想必也会并不遥远(一说是今年年底)。

本人其实无意挑起 Windows 和 Linux 之间的再次争论,但到最后觉得在桌面操作系统领域 Mac 和 Windows 的确会比 Linux 更有为的多,而同比 Linux 和 BSD 系统用作服务器是最合适不过的了。

作为名开发人员,乐观的观点就是,如果用户普遍都从老系统升级到 Mac 或者 Windows7,就是真正宣告 IE6 死亡的时候了(其实这 Vista 应赋予的使命,到最后可能还是得 Windows7 来胜任)。然而也可预见到的,就是这进程往往会比想象的慢 -- 并不是所有的用户都会放弃他们的操作习惯。

https://friable.rocks/_/2009_11_05/409457553c56.jpg

Vista 的口碑已经是「声名狼藉」(不过我没使用 Vista 的经验),Windows7 早已经被重受厚望,微软此次也是势在必得打算重新拾回「面子」。到时是怎样种情况,Windows7 这开发周期有史以来最长的操作系统,或许在 2009 年就能得到答案。

-- EOF --

看图购的 AIR 版本(预览版)

2012-10-15 更新:

可惜的是「看图购」这个产品已经被淘宝撤下,域名 go.taobao.com
也变成了「淘宝旅行」频道,所以这个项目也没有存在的意义了。

多年以后再看,物是人非,唏嘘。

http://friable.rocks/imgo/images/logo.png

相信很多关注淘宝的朋友都知道 淘宝近期出了个「看图购」项目 。细心的朋友也会发现,看图购本身是基于 API 的,那么我们就可以根据这个 API 玩出很多花样。

最近也了解了下有关 Adobe AIR 的些东西,于是就拿它来练练手。AIR 真的很容易上手,花一天的时间了解 SDK、花一天的时间编写界面、然后花两天的时间编写脚本,于是就捣鼓出了这个小玩意。

由于 PD、PM、交互、视觉、前端几乎都是我一个人,加上时间较紧,这东西还有很多优化的余地。大家有任何的意见和建议,欢迎提出。

-- Split --

Realazy 兄已经有了针对 AIR 的很中肯的点评 ,在这里我说下我的看法:

使用原有的技术即可实现传统桌面端软件的效果,AIR 的确提供给众 Web 应用提供商开发「桌面端」软件的最低成本的一种方式。同时,AIR 本身的易用性真的让人感到惊艳,以前使用的些开发经验和技巧可以完全的保留。

很多人都看好类 AIR 这种技术会在不久的将来会风行,我还是持比较谨慎的态度。

首先,传统桌面端开发环境的成熟程度是 AIR 望尘莫及的,这犹如小毛孩子和七尺壮男打一架是不现实的。

其次,还是不得不说的架构问题。AIR 目前架构从本质上说,还只是浏览器套上了层系统的外皮 -- 它实质上还是浏览器。要求它完全实现客户端软件的功能,还是有点强人所难的。

同时,正因为此,AIR 的性能还是让人感所诟病。不解决这一问题,AIR 会难以胜任更高层的应用,只能沦为前端的调味品。

正是因为利用 AIR 如此的便利,如果发挥不当会如 cherish 所言的那样,「让大部分的 Web 开发者变成披着狼皮的羊」 。在目前相对浮躁的互联网环境下,尤其要注意这点 -- 工具本身没有错,就看怎么利用了。

最后,还有个心得是设计模式上的 -- 桌面端与传统的 Web 开发思维的确有微妙的不同,由于使用 AIR 时间并不长,就不班门弄斧了。

-- Split --

下面是「不负责任」的免责声明,有时候这是必须的。

本程序出于个人兴趣爱好制作,与淘宝网官方无关。因此程序造成的所有后果,本人与淘宝网不承担任何责任。

-- Split --

好了,说了那么多,兄弟们这就开始体验吧: http://friable.rocks/imgo/ ,等到代码「可以见人了」,在适合的情况下会开源的 :^)

事件检测

给浏览器绑定事件有时候是非常痛苦的事情,不同的浏览器提供不尽相同的功能的同时,也提供了不同的事件。例如,IE 系列的浏览器支持 mouseenter/mouseleave 事件;Opera 不支持 contextmenu 以及 input 相关的 onbeforepaste、onbeforecut 等事件。

浏览器之间不同程度的事件支持情况,会加重编写跨浏览器的开发成本。而在某种「无奈」的情况下(特别针对 IE),我们都会采用 浏览器嗅探 来决定绑定不同的事件,例如绑定鼠标滚轮事件:

if (Env.ua.ie) {
    Event.on(document, 'mousewheel', callback);
} else {
    Event.on(document, 'DOMMouseScroll', callback);
}

或者另外中做法就是干脆绑定两个事件。虽然这也能很正常的工作,但我们都了解,无论是基于浏览器嗅探还是重复绑定无用的事件,这都是不完美的解决方案。

Juriy Zaytsev 的代码 给了我们解决这个问题的些启示,他利用 DOM 的特性,来判断针对某元素是否支持具体事件。例如

var el = document.createElement('div');

el.setAttribute('onclick', 'return;');
typeof el.onclick; // "function"

el.setAttribute('onclick2', 'return;');
typeof el.onclick2; // "undefined"

那么,根据这一特性,就可以编写出不依赖浏览器嗅探的事件检测脚本,原文的最终例子

var isEventSupported = (function() {
    // 根据特有的事件创建对应的 HTML 元素
    var TAGNAMES = {
        'select':'input','change':'input',
        'submit':'form','reset':'form',
        'error':'img','load':'img','abort':'img'
    }

    function isEventSupported(eventName) {
        var el = document.createElement(TAGNAMES[eventName] || 'div');
        eventName = 'on' + eventName;

        // 检测元素是否已经包含了对应的事件
        var isSupported = (eventName in el);

        // 如果没有对应事件,则尝试增加对应事件,然后判断是否为回调
        if (!isSupported) {
            el.setAttribute(eventName, 'return;');
            isSupported = typeof el[eventName] == 'function';
        }
        el = null;
        return isSupported;
    }
    return isEventSupported;
})();

那么,判断是否为 Opera 浏览器使用

isEventSupported("contextmenu")

就好过

navigator.userAgent.indexOf('Opera') > -1 

而且,以后如果 Opera「修复」了该问题,由于 isEventSupported(\"contextmenu\") 返回的是 true,从而也可保证代码健壮的运行。

最后,原文作者写了个 简单的测试页面 ,用于检测具体浏览器的 DOM Level2 的支持情况。

-- Split --

需要了解其他利用 DOM 特性的小窍门,请 查看这里

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

分类

搜索

文章