摘要:
移动webapp监测屏幕旋转时常用onorientationchange事件,用此事件获取改变后的屏幕尺寸时需要注意:1. iphone中,可立即获取改变后的屏幕尺寸。2. android中,获取的尺寸是改变前的。需要设置setTimeout在一段事件后再获取。iScroll4是200ms,建议设成300ms。 阅读全文
摘要:
平时项目中处理ajax跨域资源请求时,例如www.example2.com上的某个页面要请求www.example1.com的数据,我们使用得较多的是jsonp方式。jsonp通过JavaScript callback的形式实现跨域访问,其实现原理是:在 Web 页面中插入动态脚本元素,该页面源指向其他域中的服务 URL 并且在自身脚本中获取数据。脚本加载时它开始执行。该方法是可行的,因为同源策略不阻止动态脚本插入,并且将脚本看作是从提供 Web 页面的域上加载的。通过script标签实现跨域请求,然后在服务端输出JSON数据并执行回调函数,从而解决了跨域的数据请求。前端使用jsonp的dem 阅读全文
摘要:
在无线侧实现搜索显示smartbox功能的时候,会对输入框绑定keydown、keyup、keypress事件,从而在检测到输入框的值发生改变时,发出请求拉取smartbox的内容。但是,在iPhone 3gs上测试发现输入框不响应这几个事件,我们的解决办法是设置一个定时器,每隔100ms检测输入框的值是否发生了改变,如果改变了,就请求cgi拉取数据。这个办法参考了百度应用搜索功能的实现方式。公司内部一篇关于移动web开发的分享,讲到可以用html5的input事件去代替keyup:domInput.addEventListener('input', function(){al 阅读全文
摘要:
1.安装 下载最新的smarty。下载地址:http://www.smarty.net/download 下载成功后,解压压缩包后的文件如图所示: 将解压后的文件存放在web文档根目录外的某个位置。windows下,这个位置可能是: C:\php\includes\Smarty-3.1.132. 因为需要将smarty类库包含在应用程序中,所以要确保此位置(C:\php\includes\Smarty-3.1.13)包含在php的include_path中。将该路径附加在include_path后面: ; Windows: "\path1;\path2" include_p 阅读全文
摘要:
虽然iframe的使用有诸多令人诟病之处,但项目中总会因为某些原因用到它。iframe的高度自适应是使用iframe时普遍要解决的问题。1. iframe加载的是同域的,且受自己控制的页面(即,可在iframe加载的页面中获取iframe的高度)。这种情况下,在框架页中通过以下代码可方便设置iframe的高度:if(window.frameElement) { var iframeheight = Math.max(document.body.scrollHeight, document.body.clientHeight); window.frameElement.height = ifra 阅读全文
摘要:
注:MongoDB并不像Windows上安装其他软件,只需要下载Zip包并解压,然后配置数据存放目录并启动即可。1.下载MongoDB从MongoDB官方网站,根据你的平台选择对应的windows的压缩包并解压,本文解压到D:\mongodb\。注:如果需要在命令行中快速使用MongoDB bin目录下的命令,可以将D:\mongoDB\bin加入到Window环境变量。2.配置数据文件在D:\mongodb\创建mongo.config文件,如下(并在d:\mongodb目录下新建data,log文件夹):##数据存储的位置dbpath=D:\mongodb\data##所有的输出位置log 阅读全文
摘要:
最新node.msi集成了npm,不需要再单独安装npm。执行命令npm install formidable 出现错误npm http GEThttps://registry.npmjs.org/formidablenpm http GEThttps://registry.npmjs.org/formidablenpm http GEThttps://registry.npmjs.org/formidablenpm ERR! Error: connect ETIMEDOUTnpm ERR! at errnoException (net.js:769:11)npm ERR! at Object 阅读全文
摘要:
1.backbone处理cgi返回的jsonp格式数据无线应用频道二期的cgi返回的格式是jsonp,但默认情况下,backbone认为ajax请求返回的数据类型是json。解决办法:Backbone.sync是Backbone每次向服务器读取或保存模型时都要调用执行的函数。默认情况下,它使用(jQuery/Zepto).ajax方法发送RESTfuljson请求。如果想采用不同的持久化方案,比如WebSockets,XML,或LocalStorage,我们可以重载在model/collection中重载sync()方法。2. iPhoneSafari下在ajax回调函数里执行window.o 阅读全文
摘要:
近一个月参与了项目组的一个webapp的开发,期间遇到了一些问题,也学到了许多,现总结如下:1 webapp一般架构和js框架相对其它的网页,webapp的页面不重载(或极少重载)(SPA)。SPA表现在hash驱动。所有的看似切换页面的效果实际上是通过javascript模拟的,用户通过ajax或jsonp的形式与服务器交互,由前端渲染页面和展示结果,故而需要前端完成更多更复杂的逻辑和计算。通常,构建一个webapp,javascript需要提供和完成以下功能:(1)对模型,控制器,视图的分离,按照设计app的设计思路来完成一个在浏览器中运行的app(如果采用MVC的话,并不是所有情况下MV 阅读全文