在项目开发时遇到了一个问题,就是傲游+flash10 报莫名其妙的安全沙箱错误。导致程序不能正常运行。
于是google了一下才发现此为普遍现象。初想去寻求官方解释,但未果,(觉得这破烂浏览器居然还有这么多人用,真是。。。)
马桶(傲游)浏览器是一个IE内核的浏览器,但又在IE的基础上做了改动,于是IE的缺点一个不落全数继承,并且还发扬光大出自己的不少问题。
上面提到的就是其中之一。
好了废话少说,看看怎么用JS来判断一下是傲游。
也许你会想到读useragent不就知道了,2.0版可以,再往上马桶就把自己的信息改成和IE一样了。无法识别,真垃圾,装B。
还有一个方法,试了一下还很好用:
function ismaxthon(){
if (window.external.max_version){
return true;
}else{
return false;
}
}
var bmaxton = ismaxthon();
alert(bmaxton);
Stoyan Stefanov在JSConf 2009的演讲 - High Performance Kick Ass Web
主要从前端开发角度阐述了如何使网页性能更高效。PPT如下:
High Performance Kick Ass Web Apps (JavaScript edition)
View more presentations from Stoyan Stefanov.
有许多时候你需要向服务器发送一个请求,但并不关心服务器返回的内容。这通常用来做一些服务器统计(log)工作。如你请求一个1*1像素的gif文件,并将一些参数传给这个图像的地址(src e.g htp://example.org/blank.gif?user=stoyan&browser=msie&creditcard=123JUSTKIDDING567)
这种1像素的gif图通常称为”web bugs” 或”beacons”。但这种做法也被用于一些卑劣的目的,比如在邮件里嵌入一张这种图片,就可以知道用户有没有阅读这封广告邮件。
既然我们不需要服务器返回信息,那么我们能不能节省掉这部分没必要的网络流量呢?蚂蚁也是肉,不积跬步何以成江河?答案是可以的。
我们只需要在访问的地址或接口返回一个204 No content header即可。
比如我们的请求地址是:
htp://example.org/nope.php?user=stoyan&browser=msie&creditcard=123JUSTKIDDING567
nope.php 代码如下:
<?php
// …. log whatever you need to log, then reply:
header(“HTTP/1.0 204 No Content”);
?>
下面是firebug net 面板的结果
google 搜索的 beacon
另一个有用的204应用是网站的 favicon,你的网站没有或不想使用favicon,你可以配置apache使浏览器访问favicon的时候返回204而非404 header,对于为用户提供子域名的网站比较有用,因为浏览器会默认请求每个子域名下的favicon。