In: 后台技术
22 08 2008这两天,手头活儿少了一点,我就抽空把QGYWEBIM移植到了PHP+MYSQL平台下,功能和之前发布的β1.4基本一致。因为是后端生成xml来传输数据,所以尽管我对php了解不多,但还是移植得很顺利。
比较郁闷的是,以前我是做windows平台开发的,众所周知windows是忽略文件大小写的,所以我的命名习惯是文件名单词首字母大写,html链接里文件名统统用小写。但是由于php多数是跑在linux下的,这样写有很大的问题。
我遇到的另外一个问题是:AJAX提交时,发送的内容用escape编码,php端不会自动解码,网上找了一个php的unescape函数在linux下有问题。后来我才发现在js端改用encodeURIComponent来编码,php端不用解码就是正常的。不过胡子说他已经让escape在linux也能工作了。
PHP+MySQL版测试地址:http://www.qgy18.com/lab/webim/,下载点这里
ASP+Access版测试地址:http://old.qgy18.com/webim,下载点这里
说明文档:http://www.qgy18.com/file/readme.html
先放上去测试一段时间,我在会修复BUG后发布完整源代码的。
In: 前端开发
14 08 2008Firebug,就不多介绍了,搞web开发的,尤其是关注前端的估计没人不知道这个插件。最近发现打开firebug在特定的情况下会导致页面验证码失效,在此记录一下。
打开firebug面板,选择网络下的图片tab,这里会记录当前页面上用到的图片url,鼠标移到记录上,firebug会显示出该图片。这本来是一个很人性化的设计,但是问题出在,firebug在显示图片的时候会再次请求服务器。这样如果鼠标移到验证码图片上,firebug向服务器去取,服务器会认为是用户刷新了验证码,重新生成一张验证码,但此时用户的页面上看到的验证码还是旧的,这样提交肯定会通不过。
Read the rest of this entry »
In: 前端开发
10 08 2008Opera是一个来自挪威的浏览器,有着优秀的缓存机制,浏览网页速度很快,有着自己庞大的粉丝群。但是opera并没有支持上下文菜单事件,也就是说我们通常使用的依靠在页面中重写oncontextmenu事件来实现自定义右键菜单的方法不会工作。那么,有没有别的方法来实现自定义菜单呢?
我们来看看三个著名的产品(Fckeditor、YUI、Google Doc)怎么解决opera没有oncontextmenu事件这个问题: Read the rest of this entry »
In: 前端开发
9 08 2008众所周知,firefox的安全性比较高,但是安全带来的弊端就是很多功能不支持。比如说在IE下可以通过脚本来设当前网页为首页,firefox却不行。今天要讨论的是另外一个问题:怎么在firefox等不支持window.clipboardData的浏览器下实现复制呢?
首先,我们来看网易邮箱是怎么解决这个问题的。我们在firefox下进到写邮件页面,点击编辑器上的全部功能,然后点击左边的“复制”按钮,“您的浏览器安全设置不允许编辑器自动执行拷贝操作,请使用键盘快捷键(Ctrl+C)来完成”,网易邮箱给了我们这么一个提示。我觉得这个解决方案可以得80分,因为它告诉了我们两个信息:其一,之所以复制操作没有完成是因为我的浏览器很安全,为了安全损失一点用户体验一般用户是可以接受的;其二,它还提示了我们可以通过键盘快捷键ctrl+c来完成操作,这对刚上网的新手来说很人性化。但是,有没有更好的解决方案呢? Read the rest of this entry »
手册上对onkeydown的描述为“Fires when the user presses a key”,onkeyup的描述为“Fires when the user releases a key”,onkeypress的描述为”Fires when the user presses an alphanumeric key”,一个是键盘按键按下时触发,一个是按键弹起时触发,另一个是按下键盘的数字、字符键触发。为什么说要慎用keyup呢?
设想有这么一种情况,在web页面上有一个模拟的弹出窗口,很流行的那种,然后我们监听keyup事件,如果发现keyCode等于27,也就是说用户按了ESC键的时候隐藏窗口,这样能方便一部分高级用户,Google文档也这么做。但是如果弹出窗口中有一个输入框,情况就不那么妙了。因为我们通常用的输入法都有一个候选词的浮动窗口,有时候打错字了需要关闭这个浮动框口也会用到ESC,这个时候你会发现一旦按下ESC,输入法的候选词窗口连同那个弹出层一起消失了。 Read the rest of this entry »
In: 前端开发
28 06 2008记得一些天前,有人就在Google文档的服务器上发现了pdf文档的小图标
,于是分析Google文档可能很快就会加上对pdf文档的支持。今天上去一看,首先就在上传文档页面发现以下文字:
可上传的文件类型:
… …
PDF 文件(来自计算机的 PDF 文件最大可为 10 MB,来自网络的最大可为 2MB)
马上传来一个pdf测试了一下,发现google会把pdf一页页的显示出来,左边是内容区,右边是导航,看起来效果还不错。 Read the rest of this entry »
In: 后台技术
4 06 2008好久都没改过QGYWebIM程序了,今天加上了一个反映得比较多的功能:匿名用户登录。简单说来,就是系统允许用户不注册,通过点击匿名用户链接由系统分配一个临时帐号来进入聊天程序。这个功能一方面可以方便那些想体验本聊天系统又嫌注册麻烦的用户,另一方面此功能稍加改进可以应用在网上客服系统中。当然,临时帐号的权限很低,很多操作都被限制了,另外系统允许同时使用的临时帐号也有限制。
测试地址还是在http://www.shufou.com/chat/,系统限制了只允许5个匿名用户同时使用,如果你收到了登录失败提示,就说明人数已经达到上限,你可以稍后再试,当然注册用户不受此限制。当前版本为beta1.4,我会等测试一段时间后放出升级包,暂时不提供此版本的下载。 Read the rest of this entry »
In: 前端开发
1 06 2008换上新博客平台以来的这几天,我一直在研究wp系统,我发现它的架构还是有不少亮点的,尤其是插件系统,强大得让我也跃跃欲试。于是就有了reply-face这个超简单的评论表情插件。
由于我对php以及wp api还不很了解,所以这个插件主要是靠js来实现表情插入和呈现的。这样做有好处:由于是客户端用正则表达式将表情字符转换为表情图片,所以不会占用服务器任何资源。本插件实际运行效果见文后评论处。
默认表情是老版QQ的,为了减少请求次数,选择表情时用的一张大图片,所以看上去不会动,提交评论后表情字符会被gif小图替换,会动的。JS文件大小3k,加载起来应该很快。
下载地址:点击这里。主要也就是一段JS,稍微懂点JS知识的同学应该很容易改成自己想要的。
In: 前端开发
30 05 2008有时候我们在前端开发中为了提高用户体验,减少向服务器请求的次数,常常要在用户的电脑上存储数据,即要实现浏览器的本地存储数据功能。我在这里整理了一下常用的几种方案。 Read the rest of this entry »
以前那个博客程序是自己写的,有不少问题。正好借这个域名到期之际换上流行的WordPress平台吧。:-)
原来那个博客仍然保留,访问地址更改为http://old.qgy18.com,静态页面列表为http://old.qgy18.com/html/。
新博客,新开始~