Follow me on GitHub

学习笔记

SemVer — 语义化的版本管理策略[译]

npm、AMD架构的成功,越来越说明当下编程技巧的重要性正逐渐被软件生态系统所取代,软件能否很好的融入既有生态圈成为评判软件质量的重要指标,也在很大程度决定了软件发展空间乃至其生命周期。

作为一名热爱开源并积极贡献代码的开发者,除了完成条理清晰,功能完整,注释详尽的代码,还需要考虑到版本更新过程中的依赖关系管理问题,为协作项目的推进贡献力量。

该文档介绍了一套软件版本控制方案,旨在通过约定规则,让开发者远离软件管理世界里的“依赖地狱”。让软件在生命周期内能够可靠,持续,方便地为其他成员所用。

More >

活动资格验证流程设计

为了加强厝边网与微博网友的互动,同时也让更多人认识雅乐这个网站所提供的服务。公司决定发起一个线上结合线下的活动,活动需要符合一定的条件(1.绑定微博;2.上传头像)才能参与,同时为了简化验证流程,避免频繁页面跳转提高参与门槛,考虑在一个页面内完成资格验证。

so…

总目标:验证并引导 用户达到参与活动的条件,顺利进入活动页。 More >

rel=”canonical”使用一例

厝边网基于iWebSNS二次开发,沿用了其网站架构和框架,即:应用页(modules.php为入口)作为iframe子页分别由 个人中心页(main.php 仅登录用户访问)和用户主页(home.php 内容对外开放)两个父页面引用。

内容由应用页承载,如果直接访问应用页(iframe) 则js跳转到包含父框架的地址,虽然最终能到达目标地址,但由于使用js执行判断,跳转前子页已渲染完毕,如此跳转影响用户体验,于是考虑让子页的搜录排名在完整页之后,作为妥协方案。

More >

IE浏览器URL最大长度2,083?

目前参与的项目中有个弹窗音乐播放器,使用url传参(模拟get方法)实现无刷新为播放器(弹窗)添加歌曲列表的功能。偶尔会遇到歌曲列表被截断的情况。仔细研究后发现只有在首次弹窗时发生问题,如果传参时播放器窗口已打开,则无此问题。

刚开始以为是脚本加载或执行过程中依赖关系处理不当导致此问题,而窗口已打开由于加载缓存文件较快不存在网速影响。直到今天安插debug脚本结合调试工具才发现真正的问题在于通过url传递的参数超长部分被截断了,诡异之处在于:播放同样的歌曲列表,按理说传递的参数包括参数长度都是一样的,如果是浏览器限制导致问题,给同样的参数应该产生相同的结果才对,而实际操作中却只在首次播放(弹窗口)时出现参数被截断的问题。

唯一可能导致问题的差异变量是目标窗口(以window.name标识)的存在情况,通过window.open打开一个指定name参数的窗口,如果该窗口不存在,则传递的url参数(字符串)长度超过2083部分被舍弃;若目标窗口存在,则url参数长度超过4113部分被舍弃。 More >

Chrome21中textarea的maxLength与value.length值不一致

 问题描述:

Chrome21及以后版本中,在<textarea>中敲入回车换行,value.length值加一,而用于maxLength检测的长度值加二,导致value.length < maxLength时,就不能再敲入内容。最极端的情况,当全部内容为换行时,value.length = maxLength/2, 演示如下


More >

开源

开源是什么

在开发和生产中,开源是一种哲学;它为人们提供了参与到最终产品的设计和实施过程中(产生新作品)并自由地进行重发布的途径

——维基百科。

拿现实中的场景举例,PS高手将自己某个作品中的素材打包到psd源文件,发布到论坛,使得其他设计师能够选用其中的素材完成新作品的创作。这就是一个开源的行为;更进一步,你发的一条微博,被其他用户转发评论,某种意义上来说 也完成了一个开源的过程——转发者采用原始微博中的信息作为素材,加入自己的观点后传播出去。

More >

移动设备浏览当前页