话说离上一篇日志的发表时间已有漫长的四个多月,实在是对不住读者。客观原因找一下,但是还是要实事求是:一是因为工作实在是太忙太累,无暇顾及;二是BLOG系统太慢,从前到后都需要大概,在开忙之前想修改BLOG系统来着,结果改了一点点就开始忙得不可开交了,于是也中止了。
春节休息了几天,今天上班第一天,最近混twitter混得比较多,经常要压缩URL,以前做了个书签用http://is.gd/压缩,后来发现了全球最短的URL——http://to./,于是决定换API压缩。以前的API可以用GET方式提交数据压缩,但是这个却需要用POST方式提交,因此需要在弹出窗口的同时用POST提交数据。实现起来很简单:在弹出窗口中生成一个表单,把value写到对应的字段中,打开弹出窗口后再用js提交表单即可。
代码如下:
javascript: void(function() {
var p = 'http://to./',
u = location.href,
x = function() {
s = '<form name="f" id="f" action="' + p + '" method="post"><input type="text" name="url" size="9" maxlength="999" value="' + u + '" /></form><script type="text/javascript">document.f.submit();</script>';
w = window.open('', 'W', 'toolbar=0,resizable=1,scrollbars=no,status=1,width=320,height=240');
w.document.write(s);
if (!w) location.href = p + '?url=' + encodeURIComponent(location.href);
};
if (/Firefox/.test(navigator.userAgent)) {
setTimeout(x, 0)
} else {
x()
}
})()
使用方法很简单...
一种很常见的写法:
document.write('<scr'+'ipt src="http://a.com/b.js" type="text/javascript"></scr'+'ipt>');
直到被杀毒软件提示有恶意代码才发现这也是不安全的,汗……
那就只好改成这样了:
(function() {
var s = document.createElement('script');
s.type = 'text/javascript';
s.src = 'http://a.com.cn/b.js';
document.getElementsByTagName('head')[0].appendChild(s);
})();
大家可能看完性能测试才会有兴趣,下图是一个较全的性能测试结果,大家可以在这里测试,大家可以自己跑一跑看(由于加载的东西较多,请耐心等待一会儿再点start按钮)。

我们网站的静态资源(css、js和背景图片)和web应用程序是分开部署的,几乎所有的静态资源都部署在同一个应用下。最开始的网站很简单,对所有的静态资源都进行了gzip,包括所有的css,js,图片,flash等等,也一直相安无事。
直到……直到有一天用了png做背景图片,并且上传到服务器进行部署,发现在很多IE6都会在这个页面卡死,无法动弹,出事的几率非常的高。但是在内网部署的没有任何问题,那问题就只能比较内网和公网的服务器环境了。观察HTTP请求头部是个不错的方法,很快锁定是由于gzip的png引起的。内网服务器加上gzip测试,果然如此。
其实对图片等文件进行gzip是完全没有必要的,原因很简单:在web里面用作背景的图片99%以上都是gif或者jpg或者png,这些格式本来就是压缩过的,再用gzip对他们进行压缩只是徒增服务器负担而已。
今天收到了Microsoft的邮件通知,告诉我Windows 7将在六月一日过期,每两小时重启一次。邮件部分内容如下:
We’re sending this mail to remind you that Windows 7 Release candidate is available and to make sure you plan ahead for when the Beta expires on August 1, 2009. On June 1, 2009, the PC you’re using to test the Beta will begin shutting down every two hours. Windows will send you a notice a couple of weeks in advance, and that’d be the ideal time to rebuild your test PC with a non-expired version of Windows, such as the RC or Windows Vista. This will be a clean installation, so be ready to reinstall your programs and data. (Learn more about installing Windows.)
So, if you haven’t already done so, we highly recommend that you download and install the RC from one of the following sites today:
看来这次端午节很重要的一件事情就是要重装系统了……啊啊啊,这个不爽!
正式开始twitter了,我的twitter地址是:http://twitter.com/xushengs,欢迎加入!
由于twitter的字数有限制,因此把长URL压缩成短URL是非常非常必要的。不过,你是不是因为压缩的工作而烦恼,要复制地址,然后粘贴,然后再复制,再粘贴?用书签来替你完成前面的工作吧!
把下面的这个地址拖到你的书签栏就OK了:
如果不能拖到书签栏,请新建一个书签或者把当前页面加入收藏,然后更改这个书签的属性,把URL地址更改为:
javascript:void(function(){var r='http://is.gd/api.php?longurl='+encodeURIComponent(location.href),x=function(){if(!window.open(r,'ShortURL','toolbar=0,resizable=1,scrollbars=yes,status=1,width=320,height=240'))location.href=r};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})()
使用方法(需允许弹出窗口):
- 打开你要进行URL压缩的页面
- 点击这个书签按钮
- 在弹出的窗口中全选:Ctrl + A,复制:Ctrl + C
本来想把这个Ctrl + A也去掉来着,要写的代码有点长,后来发现还有问题是[http://is.gd]is.gd提供的这个API输出的是纯文本,不是HTML DOM,要做也很麻烦,先这样吧,已经省了一半的工作了。
有这么一个题目,说bt其实也不bt,为了重点突出其中的意图,特意加上了括号:
var a = (++Math.PI);
var b = (Math.PI++);
var c = Math.PI = (++Math.PI);
var d = Math.PI = (Math.PI++);
var e = Math.PI = (Math.PI + 1);
执行完后,a、b、c、d、e的值分别是什么呢?如果学校里学的C语言基础好的话,应该可以知道答案。你不妨先写下答案,我们再来看看ECMA的规范。
在ECMA-262中,对于Math.PI的说明是这样的:
15.8.1.6
The number value for π, the ratio of the circumference of a circle to its diameter, which is approximately 3.1415926535897932.
This property has the attributes { DontEnum, DontDelete, ReadOnly }.
很清楚,ReadOnly,那么你给Math.PI赋值是没有用的。
再看看关于前自增(Prefix Increment)...
在IE下,获取Param的时候有个诡异现象(不知道算不算bug)。为了清晰起见,下面用最简单的HTML和JavaScript来说明。有这么一段HTML(head部分是标准的head,doctype使用xhtml-transitional的DTD):
<body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="100%" height="100%">
<param name="movie" value="Test.swf" />
<param name="quality" value="high" />
<embed src="Test.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="100%" height="100%"></embed>
</object>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="100%" height="100%">
<param name="movie" value="Test.swf" />
<param name="quality" value="high" />
<embed src="Test.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="100%" height="100%"></embed>
</body>
</object>
现在,我们分别用两种方式来获取第一个object(swf)的param参数个数...
Processed in 0.2187528 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号
2010-2
2009-8
2009-5
用户中心
日志分类

最新日志
最新评论
统计信息






友情链接