搜狗拦什么?

去掉超链接的虚线框,在IE中至少有这么几种办法:

  1. a {blr:expression(this.onFocus=this.blur())}
  2. onfocus=”this.blur()”
  3. 用.htc 实现
  4. 使用IE的私有属性hidefocus=true

不考虑性能及其他因素,这几种办法在IE类浏览器遨游、TT、360中都表现相同,但是在搜狗浏览器中,会遇到点麻烦。默认设置的搜狗兼容模式会进行弹出窗口拦截,大概有这么几种情况:

  • a.新窗口打开会被拦截,原窗口不会。
  • b.原页面打开会被拦截,但是作为iframe调用不会。
  • c.页面放到服务器上会拦截,放在本地不会。
  • d.前面提到的去掉虚线框的前三种办法有可能会被拦截,使用hidefocus=true则有可能放过你,具体见demo,为什么都是有可能,见下面三点。
  • e.如果页面有两个指向相同地址的a链接,被拦截的那个a先被点击,那紧接着点击不会被拦截的a也会被拦截。
  • f.如果页面有两个指向相同地址的a链接,不被拦截的那个a先被点击,那紧接着点击会被拦截的a则不会被拦截,刷新页面也不会。
  • g.如果页面有两个指向相同地址的a链接和一个其他指向其他地址的a链接,如果不被拦截的那个二分之一a先被点击,接着单独的那个a被点击,此时再点击会被拦截的a则会被拦截。(f和g的区别在于,点击两次相同的链接a之间是否点击了另外的其他链接。)
  • h.有几个例外不会被拦截,搜狐(http://www.sohu.com/)QQ(http://www.qq.com/)Google(http://www.google.com/)谷歌中国(http://www.google.cn/)
    (但是,谷歌中国新家(http://www.google.com.hk/)会被拦截,另外焦点房产网、17173、chinaren、搜狗包括搜狗浏览器官网均会被拦。)

facebook奇特的页面加载技术

facebook使用chunk技术让页面分块输出成很多JS段,这样做的好处就是服务器和客户端可以并行进行处理,不用等服务器全部处理完毕,客户端才进行处理。

举个博客园首页的列子,博客园首页分为下面几块(“推荐博客排行”,”首页随笔列表”,”最新新闻”…)
我们一般对该http请求处理如下:

  1. 浏览器发送http请求;
  2. 服务器处理请求(从缓存读取前50个推荐博客,从数据库读取”首页随笔列表”,从数据库读取”最新新闻”),生成首页的html代码;
  3. 服务器发送html代码给客户端;
  4. 浏览器接收到响应,处理html。(下载css,js,image,执行js等等)

可以看出传统的http请求4个过程中,每个过程都必须等待前1个过程完成后才能执行,这样就存在很大的资源浪费。

facebook的对该http请求的处理如下:

  1. 浏览器发送http请求;
  2. 服务器处理请求;
    • 从缓存读取前50个推荐博客,生成”推荐博客”的js代码段,flush输出该代码段;
    • 服务器继续读取”首页随笔列表”,并生成输入js代码段;
    • 服务器继续读取”最新新闻”,并生成输入js代码段。
  3. 浏览器接收到js代码段,下载该代码段所需的js和css。插入html代码。

在这个处理流程中,最大的特点就是2,3是并行进行处理的,服务器处理完一部分数据就把已经处理好的数据交给浏览器进行呈现处理,自己再继续处理其他的数据。

原文链接:
《名站技术分析 — facebook奇特的页面加载技术》

————————————
相关博文:
《为什么Facebook比以前快2倍》


为什么Facebook比以前快2倍

随着用户的增多,几乎所有网站都会面临一个问题:网站速度变慢,用户体验变得不好。Facebook已经有超过5亿的用户,其用户增长速度令人震惊,但是人们从来没有发现Facebook变慢,相反,它正变得越来越快!Facebook 为什么能越来越快?

罗伯特 约翰逊(Robert Johnson)是Facebook的项目总监,他说:在工程师团队对Facebook代码进行了重写和深入优化之后,网站的速度以前快了2倍。

1.Facebook花了多久才让它变快2倍的呢?

罗伯特 约翰逊:我们对网站进行的大幅度的”改革”,这的确使网站速度得到很大的提升。工程师团队花了大概一个月来规划这个项目,具体的实施过程则花费了6个月。

2.在这次的重写行动中,你们在技术上做了什么大的改进?

罗伯特 约翰逊:我们队源代码做了比较多的优化和重写:

1、把用户请求之后的内容生成、网络传输和网页渲染的时间重叠起来;
2、把相应的功能代码放进一个在页面初始化时需要用到的Javascript核心功能文件中;

这个项目叫做”BigPipe“,只要当客户端的浏览器准备好了,我们的服务器就会以最快的速度以流的形式传送内容,当我们的服务器还在产生数据的时候,客户端的浏览器就已经开始下载静态内容和渲染页面最重要的部分了,我们把几部分的时间重叠了起来,使用户感觉更快。这个新的JavaScript库叫做”Primer“.

除了服务器端的大项目之外,我们还对所有的文件都进行了”瘦身”,让一切变得更小更轻,比如我们进行了CSS图片合并(CSS Sprites).

3.Facebook是否鼓励开发员大胆尝试和创新呢?

罗伯特 约翰逊:也许这是这个项目最棘手的部分之一。对于Facebook来说,开发速度是最重要的指标之一,我们不希望看到任何会使开发速度慢下来的事情。我们既要让开发人员尽可能容易的完成任务,又要使网站代码尽可能得到优化,所以我们制造了一些辅助开发工具,它们能使鱼和熊掌兼得。比如Primer,让它使Facebook运行得更快和让它易于集成和不容易被误用是同等重要的。

我们监测一切可能会影响程序性能的因素,并开发相应的工具,在程序正式放出之前检查代码。

这很重要,一旦代码出现问题,系统就会自动提醒开发人员,而不是靠开发人员自己去检查那些问题。这样开发人员就可以不断地创新,只要在出现一些比较特殊问题的时候,开发人口才需要停下来解决那些问题。

原文: oreilly 译文:http://cnnet.us/taobao/facebook-faster/ 转载请保留出处


webrebuild.org第四届年会-北京站

举办时间: 2010年07月17日(星期六)
举办地点: 北京航空航天大学新主楼会议中心 第二报告厅 (地图
报名地址: 在线报名
报名截止: 2010年06月27日
官方网址:webrebuild.org

主要议程:

· (W3C)Klaus Birkenbihl——题目待定
· 范俊豪(腾讯)《从浏览器原理看web标准的重要性》
· 谢子斌(Opera)——《HTML5与CSS3》
· 张克军(豆瓣)——《豆瓣的前端架构》


一起去看IMAX 3D版的《阿凡达》

等你升级的时间,那惨淡的心情大概只有军队作战前的黎明可以比拟。像“斯巴达克斯”里奴隶起义的叛军在晨雾中遥望罗马大军摆阵,所有的战争片中最恐怖的一幕,因为完全是等待。

或许你还在使用2001年10月诞生的IE6(Internet Explorer 6)浏览器,而现在是2010年3月。在日新月异以天计算的网络社会中,IE6正阻碍着网络新事物的发展,或许你没有感受到这一点,这是因为背后有许许多多的网络工程师通宵达旦的辛勤工作为你抚平这些沟堑。而现在他们有些受够了,想想吧,马上就10年了,10年前我们用网络做些什么?看土豆优酷?偷菜停车?电子商务?网页游戏?新事物层出不穷,IE6老态龙钟。

因为用的是盗版系统,所以可能你已经关闭了XP的自动更新功能,导致IE6不会自动升级。其实升级IE6也没什么用,因为微软已经放弃了对它的支持。现在有两个新的版本IE7和IE8可供普通用户使用,而在3月17日微软发布了IE9预览版,并且声明IE9将放弃对XP系统的支持,就是说假如你用的是XP操作系统那在不久的将来最高只能升级到IE8,再以后你买了笔记本后的第一件事就是把正版的系统卸掉,换上与你相濡以沫的XP,这就像你看到有人还用WIN98一样XX(该处省略两个字)。

也许你很高兴现在没用IE6而是用的“遨游”、“360”、“腾讯TT”、“世界之窗”、“搜狗”,并且让它们自动更新,始终保持在最新版。我承认这些浏览器功能十分强大,让你用起来得心应手。可是你要知道这些都是外壳浏览器,它们调用的都是IE的内核,改头换面换了身皮肤而已。如果你在装这些外壳浏览器时电脑本身还是IE6的浏览器,那这些外壳浏览器依然是IE6的心,如果电脑本身是IE7浏览器,那它们是IE7的心。虽然它们是最新版,但它们的心不会升级。它们的心是玻璃,外壳是木板升级到钢板,从性能上来说……春哥,你知道的。别指望一颗玻璃心能多么坚强。现在“遨游”、“搜狗”等一些外壳浏览器已经开始支持双核,除了支持IE核心外,也支持WebKit内核(一个开源的浏览器引擎),虽然一些国内网页开发人员对外壳浏览器鄙夷依旧,但它们会比这篇文章更能改变你们的习惯。

目前除了IE系列的浏览器外,还有火狐浏览器(Firefox)、谷歌浏览器(Google chrome)、苹果浏览器(Apple safari)、以及市场份额很小,但创新能力很强的Opera浏览器。迫于国内互联网应用的现状,不可能完全不用微软的IE,比如国内一些银行和垃圾政府网站只能保证支持IE6。庆幸之一是这一状况正在慢慢改善,比如建行把个人网银率先全面支持 Firefox 浏览器当作抢占Firefox用户市场的重要先机;庆幸之二是上述这些浏览器有针对IE的插件扩展,比如谷歌浏览器有IE Tab扩展,下载安装之后在谷歌浏览器地址栏右侧就多了一个按钮,点这个按钮谷歌浏览器就能模拟IE的行为,保证你正常浏览网页。

你也许会说这些关你什么事,现在能用就行呗。是的,目前来说绝大多数的网络应用还不敢放弃对于IE6的支持,你们的势力还很强大。但你这样想让我觉得你已经变得像你讨厌的爸爸妈妈爷爷奶奶一样不乐于接受改变,感叹电脑复杂怎么也学不会,连拼音输入法打个字都那么费劲。

我不能说服你,但你不能阻止我说你。《阿凡达》我只想看IMAX 3D的,14英寸熊猫黑白电视机有什么意思呢?

等你升级的时间,那惨淡的心情大概只有军队作战前的黎明可以比拟。像“斯巴达克斯”里奴隶起义的叛军在晨雾中遥望罗马大军摆阵,所有的战争片中最恐怖的一幕,因为完全是等待。

在等待的时间,让我心平气和的看一副《译言网》的漫画:
Internet Explorer 6 的盛衰史(漫画)— Smashing Magazine




Copyright © 1996-2010 Chesanqi's Web World. All rights reserved.
Jarrah theme by Templates Next | Powered by WordPress