Archive for the ‘HTML/JavaScript’ Category

This standard HTTP header field is defined in RFC 2616 The Cache-Control general-header field is used to specify directives that MUST be obeyed by all caching mechanisms along the request/response chain. The directives specify behavior intended to prevent caches from adversely interfering with the request or response. These directives typically override the default caching algorithms. Cache [...]

收集并整理了一下部分抓取手机网站的搜索引擎robots的User-Agent信息。有需要的同学可以点击下面的链接下载。 目前比较可恶的是部分国内手机搜索引擎,抓取的时候,不会在User-Agent信息里说明自己是robot。其实,说明一下,这样更方便的。 点击这里下载

Developing for Mobile Rules: Rule 1: Do NOT use the emulators. Rule 2: Make sure you have: – iPhone or Android (or both ) – S60 – Windows Mobile – ( BlackBerry ) Rule 3: Use media queies State of the Mobile Browsers View more presentations from Peter-Paul Koch.

Reducing Server Load and Network Traffic in REST/Ajax Architectures 一篇讲如何利用Ajax来降低网络服务器负载和流量的文章,部分观点很有道理。降低网络流量和负载,一直是我最喜欢Ajax的地方,从一个技术人员的角度来说,这才是最实质、最吸引人的地方。另外文章中讲到了如何巧妙利用http 304状态码来减少流量的办法,很有道理。http状态码是我们常见的东西,但是很少有人真正去关注这些东西。而许多新入行的程序员的简历上却往往会写道:熟悉or精通http协议,真是无语。http状态码,在以前也应该经常用到的,但到Ajax使用的多的时候,这个状态码就是一个非常常见的东西了,所以建议每一位做网络程序特别是Web开发的,一定要去认真看看http1.0和1.1协议。   相关:HTTP 1.1状态代码及其含义

       IE Firefox 浏览器刷新和强制刷新发送的 HTTP Request Header   Firefox:   刷新 F5   Cache-Control: max-age=0   强制刷新 Ctrl+F5   Pragma: no-cache   Cache-Control: no-cache   IE:   刷新 F5   If-Modified-Since: Sun, 21 Nov 2004 14:35:21 GMT   If-None-Match: "14f598-916-a64a7c40"   强制刷新 Ctrl+F5   Cache-Control: no-cache

可以在不影响页面显示效果的前提下减少你的CSS代码,我测试了一个css,还真有效果,优化掉近10%。[ 链接 http://flumpcakes.co.uk/css/optimiser/ ] 这个则可以把CSS紧凑化[ 链接 http://www.cssdrive.com/index.php/main/csscompressor ] [Copy From : http://cnc.sablog.net/blog/]

在IE下,使用word-wrap/table-layout等都可以让作用域内的字符自动换行。FireFox下够郁闷的,愣是不支持自动换行这一特性。虽然这是IE的一个特性,但毕竟这个是非常容易遇到的情况,我觉得应该引入进来。这里基本上都长草了,没时间来看看。最近比较忙,连续两周肯定没有好好休息的时间,连高中同学的婚礼也参加不了了。实在是有些过意不去。他是我高中最好的同学,而且曾经是相对于他家人,更能听进我的话。Bless!

以下以 IE 代替 Internet Explorer,以 MF 代替 Mozzila Firefox 1. document.form.item 问题 (1)现有问题: 现有代码中存在许多 document.formName.item("itemName") 这样的语句,不能在 MF 下运行 (2)解决方法: 改用 document.formName.elements["elementName"] (3)其它 参见 2 2. 集合类对象问题 (1)现有问题: 现有代码中许多集合类对象取用时使用 (),IE 能接受,MF 不能。 (2)解决方法: 改用 [] 作为下标运算。如:document.forms("formName") 改为 document.forms["formName"]。 又如:document.getElementsByName("inputName")(1) 改为 document.getElementsByName("inputName")[1] (3)其它 3. window.event (1)现有问题: 使用 window.event 无法在 MF 上运行 (2)解决方法: MF 的 event 只能在事件发生的现场使用,此问题暂无法解决。可以这样变通: 原代码(可在IE中运行): [...]

现在一般的IE弹出窗口都会被xp sp2或者其他的拦截程序干掉,根本没有机会弹出。但也不是没有办法,毕竟,许多流氓网站还是在弹出。那么他们是怎么做到弹出窗口的呢?这几天小研究了一下。道理是这样的,为了能让大多网页正常运行,弹出窗口的默认规则都不是特别严格。但遇到window.open或者利用模式对话框的做法,是基本上不可行了。那么应该怎么做呢?需要利用的就是这个不严格的规则。利用一些控件,比如说Flash,或者realone插件,至于MPC可以不可以,我没有遇到过,也没有做过相关的开发,实在不太清楚。不过我想,应该可以的。 废话少说,先来说说利用Flash弹出窗口吧。详细研究过Flash的Action Script的朋友可能比较清楚,在AS里同样也有一个window.open,而一般拦截弹出窗口程序对其ActionScript的限制是比较少的。(window.open参数和javascript的window.open基本一样,在这里就不详说了。)就利用这一点。有两个办法,一个是做一个比较小的Flash,代码里加上window.open这个东东。另一种办法是完全使用js代码,直接用js模拟一个Flash,我具体说一下这个办法。 首先,在目标页面上document.write一个id为popup的层,并设置宽度和高度都为0,显示属性为hidden。这样保证在载入页面是用户看不到这个东东。[php]document.writeln(‘<div id=popup style="top: 0; width: 0; height: 0; position: relative; visibility:hidden;"></div>’);[/php] 然后,是在这个层里创建一个Flash控件。[php]var obj = document.getElementById(‘popup’);obj.innerHTML += ‘<div><object id="popupObj" width=0 height=0 classid="clsid:2D360201-FFF5-11d1-8D03-00A0C959BC0A" codebase= "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="ActivateApplets" value="1"><param name="ActivateActiveXControls" value="1"></object></div>’;[/php]实际上,这一步就完成了在页面上建立了一个Flash对象,如果正常操作的话,可能可以做一些Flash比较有优势的Action,不过今天目的不在这。 最重要的一步,执行弹出窗口window.open代码。这里需要利用DOM来给刚才建立的Flash添加代码:[php]pObj.DOM.Script.execScript(                "function openPopup() {var cwidth=820;cheight=660; l=(screen.Width-cwidth)*.5; t=(screen.Height-cheight)*.5; popwin = window.open( ‘http://www.kedy.cn’,’ads’,’height=’+cheight+’,width=’+cwidth+’,left=’+l+’,top=’+t+’,toolbar=no,status=no,location=no,menubar=no,scrollbars=no,resizable=no’); if (popwin) {popwin.blur();} return popwin;}");[/php]然后再运行这个function[php]pObj.DOM.Script.paypopupOpen()[/php] 到这里其实核心的东西就已经完成了。具体的实现我就不给出实例代码了,毕竟,这个东东会有一些歪用途。如果实在想要的话,那就去找一家流氓网站,能自动弹窗的。然后学习它的代码吧。呵呵,流氓也不是一无是处啊。这点东西我就是从流氓网站上学来的。~~~

Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下: Public指示响应可被任何缓存区缓存。 Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。 no-cache指示请求或响应消息不能缓存 no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。 max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。 min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。 max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。