自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Emu的专栏 —— 关注前端技术,关注网络优化

黄希彤 网络优化 ajax dhtml javascript QQ空间 Qzone 腾讯博客

  • 博客(92)
  • 收藏
  • 关注

原创 不用引入外部库,在浏览器上一行计算出SHA-1/SHA-256的结果

现代浏览器里计算字符串 “abc”的Sha-1结果,写法是这样:await crypto.subtle.digest('SHA-1',new TextEncoder().encode("abc")).then(a=>Array.from(new Uint8Array(a)).map(a=>("0"+a.toString(16)).substr(-2)).join(""))

2021-12-10 18:27:31 310

原创 测试了一下node支持的各种哈希函数的性能

把nodejs里面支持的hash函数都拉出来遛一遛

2021-12-10 14:29:06 329

原创 一个文件让浏览器用3种方式解析

很老的奇技淫巧,平常也没啥用,最近因为改版404公益项目,想能不能一个404静态响应内容同时兼容<script>标签和link标签的404呢?就又把老手艺捡了起来:test.html<!-- BODY{color:red} <!-- BODY{font-size:3em}<!-- /*alert("hello world");/*--><html><head> <link href="test.html" rel

2021-10-19 13:03:13 56

原创 尝试做一个读写障碍友好的字体

事情是这样的,有一天逛chrome的插件商店,偶然发现了这个好东西:https://chrome.google.com/webstore/detail/opendyslexic-for-chrome/cdnapgfjopgaggbmfgbiinmmbdcglnamhttps://chrome.google.com/webstore/detail/opendyslexic-for-chrome/cdnapgfjopgaggbmfgbiinmmbdcglnam说是这样头轻脚重的字体,对读写障碍者更加友好

2021-10-08 10:23:37 63

原创 jq的getScript函数不支持chaset?override掉!

其实我从来不用jq或者其他框架的,这两天偶然在一个小项目里面发现jq的一个小bug:getScript函数没有透传charset信息,如果试图在页面上加载一个跨编码的脚本的时候会导致编码错误。写了一个补丁函数覆盖掉原来的:$.getScript=function(url, callback , charset){    $.ajax({        url: url,  

2014-11-19 19:45:08 3186

原创 大家好像都比较少关心webcrypto,试试写个简单的sha1/sha256/sha384/sha512实现看看

function digest(s, callback, algorithm) { try { var c = window.crypto || window.msCrypto; var subtle = c.subtle || c.webkitSubtle; if (!algorithm) algorithm = "SHA-1"; var a =

2014-09-27 21:37:16 5796

原创 惊喜:opera换webkit内核后完美支持SDCH压缩协议

我们从去年就在QQ空间上线了SDCH压缩协议支持,并且取得了非常好的压缩效果。那这次opera放弃Presto内核改用webkit内核以后,是否能和chrome一样支持这个先进的协议呢?我们用fiddler抓包看一看:

2013-07-08 17:59:56 4345

原创 腾讯举办创意马拉松活动庆祝成立14周年

2012年11月11日腾讯14周年庆,腾讯公司在深圳、北京两地联袂组织“第三届腾讯创意马拉松”活动。活动发起者之一是CSDN论坛的老人emu。  图为“第三届腾讯创意马拉松”活动宣传海报hackathon这个词诞生于1999年卡尔加里举办的一次密码学开发活动上,至今在硅谷工程师中仍十分流行,是技术爱好者们名副其实的节日,程序员通常会通宵达旦地编程,按自己的方式修改程序,第二天争相演示自己所做的功能

2012-11-13 18:08:33 8441 8

原创 偶然发现7年前受到的offer。7年,一晃而过

黄XX 先生 :     我非常高兴地通知您,经过我公司的面试和讨论,我们一致认为您是我公司 互联网事业部 开发工程师 的合适人选。根据公司的薪资福利政策,我们将给您提供以下薪酬福利待遇:   (一) 月薪(税前):         试用期xxxx元, 转正后xxxx元         附加信息:         试用期3个月         年终发放双薪。

2012-08-27 19:18:31 7040 2

原创 简单的文本描边函数,写着玩儿。

主页 日志 相册 留言板 心情 音乐丹东韶关限价令引质疑:限价为躲限购[部分城市出台楼市限价令被指变相抵制限购令] [19城市成交量下滑][四成房企业绩增长] [济青楼市大搞优惠] [杭州半数楼盘成交不足2成]上海一员工班车侧翻 已致11人死13人伤[6名危重患者中4人病

2011-09-15 14:35:29 6264 1

原创 IE下对文件(图片)进行base64转换

原文:http://www.blogjava.net/emu/archive/2011/08/28/357431.html在编写某个hta的用户环境分析工具的时候,经常发现用户被一些莫名其妙的代理服务器所劫持以后,一个正常的文本请求却下载到了一个图片。这种log看多了以后sidn

2011-08-28 12:15:32 6219

原创 Mac os 10.7.1(Lion) 下vmware fusion里的windows有时无法工作在NAT模式下的问题

原文 Mac os 10.7.1(Lion) 下vmware fusion里的windows有时无法工作在NAT模式下的问题公司安全策略限制了桥接模式,一直只用NAT模式,没有出国什么问题,直到升级了lion(不是GM版,是appstore上下的正版)以后,就开始随机性的发疯,突

2011-08-27 13:53:25 3850

原创 IE这个bug真是弱爆了

原文  IE这个bug真是弱爆了var a="<!--";alert(a);这样一段代码在IE下面居然语法解析错误!实在是弱到不知道怎么说好了。当然,下面这一段代码,也不出意外的在IE下挂掉了var a="<!--";alert(a);var a=

2011-08-27 13:39:11 3839 3

原创 脚本绑定回调增强版:备用url可以失败重试

原文 http://www.blogjava.net/emu/archive/2011/07/19/354660.html4年前写过一篇《脚本绑定回调》 http://www.blogjava.net/emu/articles/129240.html 进行了一些有趣的尝试,这

2011-07-19 20:51:17 3467 5

原创 把css和js写到一个文件里面的增强版

原文链接最早的方法发表在msdn上:http://blogs.msdn.com/b/shivap/archive/2007/05/01/combine-css-with-js-and-make-it-into-a-single-download.aspx代码是像这

2011-07-19 19:44:23 3792

原创 如何分析js代码的运行路径?

原文 只是个最基础的想法了。具体的实践稍微复杂一些:1 如果script是用src引入的,还要用xhr或者json方式来获得text,可能还需要搭个后台代理。2 如果function是在命名空间的,可以直接递归for in命名空间去挖里面的public函数出来。3 private的函数我看就算了,私有函数应该对自己负责,我们没有必要非去整人家的私货。HTML>BODY>SCRIPT L

2011-06-17 16:54:00 3774

原创 IE6上Gzip+Etag问题的解决方案

http://www.blogjava.net/emu/archive/2011/02/27/345262.html        这个问题不是太广为人知,但也算不上新鲜知识了,IE6如果接收到一个gzip压缩的http响应,那么这个响应中的Etag信息会被抛弃,此时只能依赖last-modified时间来设计cache策略。某些类型的Vary值据说也会导致相同的问题。        为了这个问题emu在http头上动了n多手术,甚至把200响应状态硬生生换成206等状态,IE6一直都非常顽固的不肯吐出If

2011-02-27 01:20:00 4030 1

原创 Firefox的getter和setter带来的安全隐患

http://www.blogjava.net/emu/archive/2011/01/19/343192.html firefox下的document不能随便用var document来覆盖,本来是一个挺好的权限保护机制,但是它对document的保护也就到此为止了。表面上看起来系统提供的document.domain、document.cookie等接口似乎不允许开发者随便修改,但是实际上呢:   document.__defineGetter__(    "cookie",         fun

2011-02-27 01:16:00 3889

原创 好像是第一次在公司外的论坛上公开演讲

<br />http://www.blogjava.net/emu/archive/2010/12/15/340824.html<br />     终于讲完了,下午公司内进行了二次分享,应该这次的分享算功德圆满了。<br />    国庆刚回来,淘宝就透过yuni吹风过来,说velicity会议第一次在国内举行,希望我们去参与和分享。几乎是本能的想逃了,实在不知道站到那样一群完全陌生的人前面,要讲些什么,怎么讲。<br />    到了10月底,dowson老大安排下来了,要去讲一场,这下躲不掉了,只好开

2011-02-27 01:12:00 3926

原创 信息无障碍的修复脚本

很多网站为了去除超链接外面的虚框(非IE很多是实框),在每个超链接标签上面都写上了恶心的onfocus="this.blur()"这样就导致整个网站人为的变成有障碍网站了,任何无法使用鼠标的用户也就无法正常使用这个网站,因为键盘不能聚焦到超链接上。修复这个问题很简单,用hideFocus或者style="outine:none"来代替onfocus="this.blur()"就好了,但是有的时候网站页面太多,全站修改代价就大了。这种情况下可以在网站的模板或者通用脚本上面插入以下一段脚本来解决问题:setTi

2010-09-26 21:44:00 3862

原创 iPad惊魂

注:为了免去大量搬迁图片的麻烦,本文全部图片采用魔鬼滤镜盗链自QQ相册。非IE内核的浏览器也许无法看到本文图片。如果是支持noreferrer的最新webkit浏览器,可以试试点击图片浏览。 事后彪叔是这么评价的:“那些小偷也倒霉,抢个东西遇到深圳反扒队的。。。”。6月11号WWDC2010的最后一天。早上在web开发方面还有最后两个repeat的session,是Nob Hill会议室的《Delivering Audio and Video Using Web Standards》。听完后觉得,所有的演示

2010-06-26 14:46:00 5240

原创 全国哀悼日,我们也把博客灰一下吧

博客设置--》显示设置--》自定义CSS样式--》 body,#csdnblog_header,#csdnblog_sidebar{filter:gray}

2010-04-21 02:25:00 3403 3

原创 不可忽略的 cache-read time(缓存读取延迟时间) 瓶颈

小小和rizen尝试过定位一个cache-read耗费时间随机的变得很长的诡异问题,排除过了文件内容、文件类型、文件头等各种影响,但是很遗憾没有最终结论。emu那天看知道这个事情后猜测,会不会就是很简单的多个cache-read操作相互竞争堵塞导致的呢?这个其实很容易验证了。写了一个简单的小页面应用了一组图片,然后抓包重新打开页面,就看到下面这个图了: 第一个cache-read耗

2010-04-09 22:59:00 4587

原创 IE6不能用gzip压缩脚本,一个流毒甚广的谣言

很多人遇到IE6下面脚本不运行的问题,在网上搜索一番后,都会遭遇到这篇流毒甚广的文章 文章作者说“跑到微软那一查,给的答复让我吐血:Do not enable HTTP compression for the script files 请不要对脚本文件开启http压缩 只好在服务器端增加对浏览器的识别代码,如果是ie6,就不压缩脚本文件了 虽然脚本能运行了,可是用户体验就...  哎,我恨ie

2010-03-31 11:39:00 6959 5

翻译 加速Javascript:DOM操作优化

原文:《Speeding up JavaScript: Working with the DOM》作者: KeeKim Heng, Google Web Developer 在我们开发互联网富应用(RIA)时,我们经常写一些javascript脚本来修改或者增加页面元素,这些工作最终是DOM——或者说文档对象模型——来完成的,而我们的实现方式会影响到应用的响应速度。 DOM操作

2010-03-01 00:46:00 6348 11

翻译 压缩,让网络更快

原文 Use compression to make the web faster 压缩,让网络更快作者: By Arvind Jain, Engineering Director and Jason Glasgow, Staff Software Engineer简介互联网上,每天有超过99人年浪费在下载未经压缩的内容上面。虽然支持压缩已经是每个现代的浏览器的标准功能了,

2010-02-21 15:57:00 7139 15

原创 关于firefox下setTimeout的诡异函数

舜子老早就反应过这个问题了,当时也没有留心去好奇一下。今天jayyang有再提起,上mozilla查了一下,原来有文档说明的:Lateness" argumentFunctions invoked by setTimeout are passed an extra "lateness" argument in Mozilla, i.e., the lateness of the timeout

2010-01-19 19:53:00 2665 3

原创 flash player往页面注入的脚本表现了adobe的临时工水平

function __flash__arrayToXML(obj) {    var s = "";    for (var i=0; iobj.length; i++) {        s += """ + i + "/">" + __flash__toXML(obj[i]) + "";    }    return s+"";}function __flash__argumentsToXML

2010-01-16 13:11:00 5668 4

原创 分域名优化的时候要考虑备选IP的问题

我们在需要下载很多内容的时候,很容易想到做分域名的并发下载,给原来的服务器多分几个域名,因为分不同的域名可能可以在浏览器中分到更多的下载进程,提高下载速度。但是在做网络应用的时候,我们的一个域名下面有的时候会有多个ip多台服务器,分布在不同的机房,这个时候浏览器会在可选的ip里面随机的选择一个ip。用nslookup可以看到可选的ip,用ping可以看到当前正在实用的ip。在多个ip的情况

2008-05-26 12:34:00 1750

原创 用shindig搭Opensocial容器

shindig是google的一个opensocial容器的参考实现。google高调发布opensocial以后大家纷纷在宣布支持opensocial,可是真正要找个支持opensocial的容器一点也不容易,orkut的sandbox限制很多,myspace中国也只支持flash的方式,真正要玩opensocial,还是自己搭一个环境算了。shindig现在还不能简单的安装运行(http:

2008-03-26 18:23:00 6514 2

原创 为IE找个新死法

IE在解释表达式的时候显然大有优化的余地,FireFox就没这个毛病。下面这段小代码可以轻松让IE崩溃掉:var n=32768;var s=new Array(n).join("0+")+0;if(confirm("真的要杀了浏览器吗?")){    eval(s);    alert("杀不掉,试试把n调大一点?");}其实就是让IE解析一个“0+0+0+0....”的表达式。

2008-02-01 18:53:00 6589 5

原创 在IE下面指定表单编码方式

在跨业务、跨网站发送数据或者业务升级的时候,我们有的时候需要指定发送数据的编码方式,比如页面是utf-8编码的,而发送出去的数据却希望是GB2312编码的。在做Ajax开发的时候,我们往往都是用vbscript或者用查字典法来解决这个问题(http://www.blogjava.net/emu/articles/31756.html)。但是有些业务,也许并不需要做成Ajax这么复杂,用表单提交显得

2008-01-31 17:42:00 5202

原创 试试把xml和javascript写到同一个文件里面

服务器现在同时输出json和xml两种数据,取决于服务程序和页面之间的约定。在程序遇到问题的时候会返回错误信息,也按照相同的约定会返回json或者xml格式的数据。比如当页面请求xml的时候服务会返回: xml version="1.0" encoding="gb2312"?>error>出错了error> 而当页面请求的是json的时候服务器会返回 alert("出错了")但

2008-01-18 22:41:00 2720

原创 OpenSocial,想说爱你不容易

OpenSocial的推出,让大家怀抱了多大的期望。Many sites, one API ,Server optional,将来我们的web application 就可以一次编写到处运行,英特网变成一个(也许几个)巨大的操作系统...google给我们描绘了一个多么美丽的乌托邦。包括Myspace在内的诸多SNS网站也都早早就宣布支持OpenSocial。可是两个月过去了,还是只看到orkut

2008-01-03 18:27:00 8014

原创 解决IE关闭页面时连续弹出新窗口的bug

这个问题长期以来一直一个随机出现,又十分难以重现和定位。几经努力之后定位到了,在一个带有复杂的内嵌iframe的页面,当内嵌的iframe正在渲染的过程中关闭IE 浏览器的时候,会比较容易发生这个问题。比较容易猜想的是IE在关闭iframe的时候出现了某些问题。猜测是几个iframe相互有通过top的脚本调用有关系,或者几个iframe和top都在各自不同的域名下有关系,但是页面太复杂进一步定位具

2007-07-06 21:51:00 7937

原创 用前景图实现hover切换图片

现在很多网站都用背景图片来实现hover(鼠标经过)切换图片。但是IE有个该死的bug会造成超链接的背景图片有时无法cache,因此在鼠标经过超链接图片的时候就看到哗哗一大片的http下载请求。这不像很多网站上描述的,是由于IE的缓存策略被设置在“每次访问此页时更新”了造成的,不管IE缓存策略如何设置,都无法彻底避免这个问题。emu试验了一下,发现用前景图也可以实现老甘(他的域名貌似已经过期,居然

2007-06-07 15:24:00 6175

原创 终于明白m$为什么要对xmlhttp和xmldom做那么多个版本的升级了

为了支持304response,测试了 MSXML2.XMLHTTP.5.0,MSXML2.XMLHTTP.3.0,MSXML2.XMLHTT,Microsoft.XMLHTTP,MSXML2.DOMDocument.5.0,MSXML2.DOMDocument.3.0,MSXML2.DOMDocument,Microsoft.XMLDOM 用get方式分别去拉取一个允许304response的x

2007-06-04 20:24:00 4397 2

原创 在csdn模了一把好牌

今天过来登陆csdn,居然中大奖了呵呵 。

2007-05-29 18:44:00 2839 2

原创 VeriSign:专门做信息安全的公司有这么外行的错误

啥都甭说了,点下下面这个verisign的验证图标,链接到verisign的验证页面上,看看偶的blog也可以以某网站的身份通过verisign的验证,只要再把页面做的比较像某网站,出门诈骗的时候就可以扛上verisign的大旗了。 究起原因是VeriSign没有从http链接中获取Referer信息来判断被校验的网站,而是根据超链接里面传过来的“dn”参数来校验,正所谓的防君子不防小人。作为一个

2007-05-24 14:00:00 2928

原创 office2007带的脚本调试器升级了,不过掉东西了

装office2007的时候顺带装了其中带的脚本调试器,发现这个版本的脚本调试器还是有个好处的,如果脚本中有多句代码被挤到一行运行的时候,以前版本的office带的调试器都只能一并运行完,这个版本终于可以像vs的调试器一样逐句跟踪了。虽然不能在一行中间打断点,不过可以在一行上打断点后再用“运行到光标处”来代替。 可惜在调试网页的时候发现M$搞掉东西了。看看2003板的调试菜单:再看看2007版的:

2007-05-22 13:15:00 3645

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除