自动IOS风格的HTML5滚动控件

ios上html5要做滚动, 可以用css实现, 用如下两句 overflow:scroll; -webkit-overflow-scrolling:touch; 即可实现滚动, 不过目前这种控件有个小问题, 当滚动条停在最上方或最下方停止时, 再上拉或下拉, 不会滚动,而是将事件传递给了父容器; 另外,上面的css在android上没有弹性效果. 对于第一个问题,在ios上也有解决办法,即当用户开始触摸控件时,判断如果滚动位置在顶部,设置滚动位置在1像素,如果滚动位置在底部,设置滚动位置在底部像素-1 不过,目前的方式,还是只能让滚动用起来方便了,要做下拉刷新的话就真的没办法了. 所以我自己实现了一个滚动控件,效果基本上按ios的scroll控件做的, 可以做下拉的效果,而且ios和android效果一样. 可以扫下面的二维码试试. 页面地址: http://www.hoverlees.com/diy/scroll.html

uploadify 在chrome上崩溃的办法

最近用了一下uploadify,在上传文件上还是很简单方便的。但是发现在chrome上会经常崩溃。网上找了一下解决办法,大多都是在uploadify.js后面加上一个随机时间以防止使用chrome的缓存,其实这个办法并不能完全解决崩溃问题,比如在uplodify页面进入其他页页后,再点击后退返回到这个uploadify页面,同样会出现崩溃问题。 其实如果不用缓存每次去请求服务器其实是个很浪费的事,关键是这样做根本就没有解决这个问题。真正的解决的办法也很简单,就是用setTimeout,让uplodify的初始化和浏览器缓存模块的功能不要在同时进行,操作如下: 这样即可解决启动时/后退时崩溃问题。

PHP的Ajax跨域转发程序

Ajax有一个安全特性就是跨域访问的限制问题,虽然有很多解决的方法,但都没有使用代理的方式简单。 后来发现一个更简单的,就是给chrome浏览器添加 –allow-file-access-from-files –disable-web-security 启动参数,即可实现关闭安全检查的功能。 它的这个特性过份到访问同一个域下的不同端由都做了限制。有时候做测试开发很不方便。所以我就自己写了一个php的代理程序,由php接收ajax请求并转发到其他域的服务器,并将结果返回。 proxy.php代码如下:

nodejs的纯js版websocket服务器程序

nodejs使得做客户端的人也可以做服务器开发,比较可惜的是目前HTML5客户端支持的WebSocket协议nodejs自身不支持。不过也有很多完善的模块提供使用。 我写这个模块的目的只是为了体验下nodejs的服务器开发而已,打算自己以后写得玩的就用这个算了。其中websocket.js是Websocket服务器模块,server.js是测试代码,跟以前写的一样,模块不支持大于65535的数据包发送和接收。 首先是server.js,用法跟客户端类似: