在做一些天气预报或者RSS订阅的程序时,往往需要抓取非本地文件,一般情况下都是利用php模拟浏览器的访问,通过http请求访问url地址,然后得到html源代码或者xml数据,得到数据我们不能直接输出,往往需要对内容进行提取,然后再进行格式化,以更加友好的方式显现出来。
canvas(html5)与svg
canvas和svg一样,都可以在网页前端直接绘图,但其实canvas和svg是两种完全不同的东西。
javascript仿Google suggest效果
既前面的聊天,又做了个模拟Google suggest的效果,利用后台php取得百度suggest关键词,然后用Google搜索它,本来打算做个twitter搜索的效果,但由于Google的动态更新,里面内容尺度比较大,所以还是没选择它,下面是图片预览效果:查看效果
PHP+Ajax在线聊天
最近两天搞了这个小玩意,其实嘛,也没太多新意,原来这种程序见多了,上网看了一圈,搜出来很多,不过大部分都是相互转载来转载去的。
去 年因为Omegle的走红,还有gmail的web聊天功能,让网页聊天似乎活力重现,激情四射,于是乎QQ也推出了在线聊天,SNS社区也相继出现了网 页聊天功能,国内还有不少人模仿Omegle网站,比如“路过的”、“陌路人”等网站,因为Ajax的兴盛,Web前端似乎进入了一个新的春天。
PHP_MYSQL的点滴注意事项
1. 外键约束 外键约束只对InnoDB类型的数据表有效,其它类型会忽略这个功能,恰好我在一本书 上看到了MyISAM类型的表,却使用了外键约束,自己试了一下,怎么就是约束不住,又查不出问题,最后才发现越来是数据类型问题,不知道是老外写的疏 忽,还是翻译者给弄错了。 2. mysql数据库打开以后,不要忘了关闭 数据查询 结束,如果页面也已经读取完毕,暂时不需要再次查询数据库,最好关闭掉连接。mysql_close(id);
利用Ajax实现长连接(模拟推送)
很多程序都可以通过socket来实现长连接,实现消息的即时推送。但由于http请求一般都是短连接,一次请求结束,就会断开与服务器的连接,服务器不 能主动推送数据到客户端,而只能由客户端发起请求,但有些时候,需要在web上实现即时的消息传输,比如即时聊天、股票动态信息等。
在 Ajax技术被发掘以前,在网页上实现无刷新的即时聊天,似乎是很困难的事情,但由于Ajax技术的兴起,人们可以进一步来挖掘它的潜力了,象 gmail、google gtalk的网页版,都是Ajax长连接的重要应用,目前很多网站可能都已经在使用长连接技术了,比如SNS网站的即时聊天。
1.Ajax 短连接方式实现网页聊天
自己画了一个模型图:

测试一下你的生活压力
在微博里看到的一张图片,很不错,分享一下,测试你的心理压力有多大。下面是一张静止的Jpeg图片,心理压力越大,看到图片里波浪运动的越快,如果你心 灵处于没任何压力的状态,你将看到的是一张静止的图片。 如果你看到波浪运动的很快,那么请你停止 目前所想的事情,闭上眼睛,深呼吸几次,然后再心平气和的来看这幅图片,波浪是不是慢了很多呢:-) 今天有网友给我发邮件了,提出了不同的见解,在此做一个更正,这是一个视错觉的图片,而非心里压力测试图片, 原文可以参考这里:http://xirang.ca/2009/12/rotating-snake-visual-illusion
cssText与reflow
一般情况下使用JavaScript控制CSS样式的时候,都习惯性一行一行地写,习惯性忽略了效率问题。今天群里有人提起了cssText,测试了一下,原来这个属性是IE only的,不过很多浏览器也都默认了这个属性,在FF和chrome下页能很好的实现。
JavaScript菜单循序渐进
说起菜单不同的人可能有不同感受,有的人感觉这个很有趣,做菜单是一件很好玩的事;也有的人会对它不屑一顾,认为这些都是雕虫小技;还有一部分人会认为, 这个完全没必要仔细看,一切都可以拿来主义,网上一搜一大把,焉用亲自去写? 本文并不是什么很高深的见解或者观点独到,只是想从一些示例 来寻找菜单制作的思路,掌握了思想就可以融会变通,想要什么样的菜单,只要想出来,就可以尝试去实现你的创意。 有人一看,说你用 JavaScript做菜单,这个太不友好了,现在纯CSS的菜单到处都是。的确如此,我blog里也有很多纯CSS菜单的demo,但纯CSS做出来的 菜单毕竟效果很有限,有些创意但靠CSS可能无法实现,用JavaScript写菜单也是一种尝试,可以实现很炫的效果(网上JavaScript模仿 flash的效果很多)。 但由于JavaScript里事件具有冒泡的特性,在处 理菜单的时候,往往被冒泡搞的很头疼,特别是给菜单加上动画特效之后,更是让很多人郁闷,有人可能会用timer或者坐标判断来解决这个问题,但其实都不 理想,网上还有老外写的一个jQuery插件,专门用于解决这个问题,可以说JavaScript做菜单并不是一件小事。 好 了,闲话少说,开始第一步,做一个简单的下拉菜单: 用到的HTML代码: <ul id=”nav”> <li> <a href=”#”>江苏省</a> <div> <a href=”#”>南京</a> <a href=”#”>苏州</a> <a href=”#”>无锡</a> <a href=”#”>常州</a> <a href=”#”>镇江</a> <a href=”#”>徐州</a> </div> </li> <li> <a href=”#”>浙江省</a> <div> <a href=”#”>杭州</a> <a href=”#”>宁波</a> </div> </li> <li> <a href=”#”>福建省</a> <div> <a href=”#”>厦门</a> <a href=”#”>福州</a> <a href=”#”>泉州</a> </div> [...]
IE6对JavaScript鼠标事件处理的小Bug
以下示例是IE6的bug,如果要查看bug,请使用IE6,经过思考和测试还是 haslayout的问题,同时谢谢丸子同学。 今天在测试鼠标事件的时候,偶然间发现了这个问题,一个完全自适应尺寸的 dom对象如果内嵌于另外一个dom对象中,IE6下此对象不响应鼠标事件(应该也会有其它事件不响应),示例如下: <style type=”text/css”> p{padding:10px; background:#333333;} </style> <div> <p></p> <!–这个P在IE6下对鼠标事件无反应 –> </div> <script type=”text/javascript”> document.getElementsByTagName(“p”)[0].onmouseover=function(){alert(“Mouseover Event Happened”)} document.getElementsByTagName(“p”)[0].onclick=function(){alert(“Mouseclick Event Happened”)} </script> <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml”> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /> <style type=”text/css”> p{padding:10px; background:#333333;} </style> <title>IE_Event_bug</title> </head> <body> 请对比IE6和其它浏览器。 <div> <p></p> </div> <script type=”text/javascript”> document.getElementsByTagName(“p”)[0].onmouseover=function(){alert(“Mouseover Event Happened”)} [...]