唔,继续整理笔记,这些是在代码编写中遇到的问题和解决办法的总结,不是Turtial,问题有针对性,内容枯燥,路人可以直接忽略~
一、Comet服务器推技术
Comet推技术,一句话概括,就是形成一个不断开的连接,使得服务器能主动向客户端发送信息。这种技术在交互性强的Web产品中应用的非常多,比如GMail。Comet的实现方式有两种:基于 AJAX 的长轮询(long-polling)方式和基于 Iframe 及 htmlfile 的流(streaming)方式,具体两种实现方式可以参考Comet:基于 HTTP 长连接的“服务器推”技术。 阅读全文 »
明天开始上交毕业设计初稿,其中有一节是遇到的问题和解决办法。我把平时在BooguNote 中的琐碎片段整理出来,便有了此文。
PS:之前已经有过3篇相关毕设的文章:
CakePHP的全局变量
FMS的80端口占用
SWFObject 一款JavaScript的Flash检测与插入模块
—- 正文开始 —-
问题背景
系统要实现一个操作,即每次向同一个url 请求一个GET方法获取一个xml文件,这个xml文件记录着聊天数据并且是即时生成的。当用FireFox或者Chrome请求时候都能获得正确的数据,而IE则常常出现无法获取实时的XML数据。
而如果在地址栏中填入 http://localhost/AzaAjaxChat/src/Chat/getXml?messageId=41 这个原始的XML文件地址,就可以获取正确的XML文件。并且在下次IE 的 HTTPRequest请求时候就正常了。看来问题出在IE自身的缓存上面。 阅读全文 »
今天开始AzaAjaxChat的视频聊天模块,拖FMS的福,实现起来很轻松,不过后来在JavaScript和Flash的交互上遇到了问题。
Flash在各个浏览器中的实现始终是个麻烦的事情,什么Object Embed~,似乎没有什么标准的格式,一般都要做一些浏览器Hack,我对这些深痛恶绝,在泡了一下午前端相关的论坛后,偶然发现一款JavaScript交互的神器。

SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块
SWFObject是一个用于在HTML中方面插入Adobe Flash媒体资源(*.swf文件)的独立、敏捷的JavaScript模块。该模块中的JavaScript脚本能够自动检测PC、Mac机器上各种主流浏览器对Flash插件的支持情况。它使得插入Flash媒体资源尽量简捷、安全。而且它是非常符合搜索引擎优化的原则的。此外,它能够避免您的 HTML、XHTML中出现object、embed等非标准标签,从而符合更加标准。
(即:通过text/html应答页面, 而非application/xhtml+xml)
官方在Google Project Host中,下载的代码包中有一个简单的Example,也包含了SWFObject的源码,感兴趣的同学可以研究一下。
相关链接:
swfobject – Project Hosting on Google Code
SWFObject中文的帮助文档
如果你也像我这样为Flash发愁,不妨试试这个小巧的js~
最近在做系统的B/S部分,用DWR做Ajax处理,期间遇到一些浏览器兼容的问题,table.insertRow()和row.insertCell()在IE下没有问题,但在FireFox下无效。同事说不用考虑FireFox的兼容,客户使用的环境就是IE。我偏执的认为就算不在所有浏览器下通过,至少在我的FireFox下需要正常运行。
晚上花了一点时间稍微研究了一下跨浏览器开发JavaScript时要注意的问题,的确好多学问。我对JavaScript的认识还太浅,得花时间做一些功课了。
顺便推荐一本JavaScript书《JavaScript语言精粹 》,是大名鼎鼎的“O’Reilly”系列,我只看了试读的第一章节,斗胆推荐
在随网之舞的《JavaScript语言精粹》 @ 随网之舞有更详细的介绍。

阅读全文 »
项目中需要一个类似于校内圈人效果的js控件,找了一下基本没有直接能用的,只有一些未完成,我只能自己动手了。 基本框架参照这篇文章《JS实现校内网"图片圈人"功能效果》(强烈推荐这篇文章,这段代码写的很帅气) 我把代码摘录如下,不过还是建议大家去看原文的一些分析。
原始Code:
运行环境: 1.jQuery支持 2.DragResize类(czy1121作者写的一个js类,更多信息可以参照《Javascript Resize和Drag类,基于jQuery》)
样式:
阅读全文 »