HTML5的最有趣的功能之一是本地存储数据并且允许应用程序离线运行的功能。 共有三种不同的处理这些功能的API,如何选中其中之一取决于你希望对你将要本地存储的数据进行怎样处理:
Web 存储:适用于具有 key/value对的基本本地存储
离线存储:利用一个 manifest文件来高速缓存所有文件以便离线使用
Web 数据库:适用于关系型数据库存储阅读全文
获取值:
下拉框select: 获取value:$('#sel').val(); 获取text:$('#sel').find("option:selected").text()
多选框checkbox:$("#checkbox_id").attr("value");
文本框,文本区域:$("#txt").val(); 或 $("#txt").attr("value");
单选组radio: $("input[@type=radio][@checked]").val();阅读全文
web通信(洋名:web messaging)是一种文档中独立的浏览上下文间的DOM不会被恶意的跨域脚本暴露数据分享方式。
得得得,术语啊什么的,比看到凤姐还头疼。有必要把上面一句话拆开讲:
web通信是一种数据分享方式(有屁话之嫌);
通信的主体是“浏览上下文”(这是纳尼?);
哦,“浏览上下文”呢是“一个将 Document 对象呈现给用户的环境”,你可以近似理解为平常我们看到的某个页面所处的环境;
web通信不会有DOM被恶意暴露的危险;
目前应用比较多的就是iframe之间的通信(这是我自个儿额外加的)。阅读全文
响应图片技术可以说是响应布局衍生出来的一个小分支。说白了,就是不同显示器宽度下调用不同的图片。
这玩意,最近在国外讨论很火,有几种不同的实现方法,但都并不复杂。
github上有该技术介绍。该技术需要Javascript以及后台程序的配合。
加载需要的JS文件responsive-images.js, 该JS文件为获取当前用户显示器宽度,然后根据宽度值大小决定图片是小(small)呢,中等(medium)呢还是大(large),然后写入对应的Cookie.
下面就是服务器端事了,服务器(可以通过配置项)检测Cookie是被设成了small呢, medium呢还是large决定图片的src地址到底是哪个。
github上项目有个demo, 点击这里访问。阅读全文
jquery.zSlide.js是我最近折腾的一个jQuery插件,借助于CSS3和HTML5的一些新特性,在浏览器中实现类似于powerpoint幻灯片展示。
无论是在公司内部,还是在一些技术会议上,我们做分享的时候,用的最多的想必是powerpoint。但是,powerpoint这个东西本身就是缺乏“自由”与“分享”精神的,因为其目前无法在线共享。要学习某技术会议上大牛分享的东西,多半要去找资源→download→整理或解压或打开之类,资源不好还要清理等等。阅读全文
毋庸置疑的是jQuery和MooTools都是非常优秀的轻量级的JavaScript框架。
jQuery以其出色的API,出色的插件机制,以及在DOM方面的关注使其大受欢迎。然而,在面对大型项目的时候,其在一些功能特性上的缺失往往需要借助插件。如果团队没有有牛人把关的话,插件的滥用,人人都插一手的代码会把项目代码质量逐渐变成狗屎的。一般而言,jQuery更适合与动态的中小站点。
MooTools插件虽然在API & DOM和上手容易程度上都上不及jQuery,但是,其API以及面向对象的设计思想似乎在实际的大项目中更有价值。阅读全文
appendChild() 方法:可向节点的子节点列表的末尾添加新的子节点。语法:appendChild(newchild)
insertBefore() 方法:可在已有的子节点前插入一个新的子节点。语法 :insertBefore(newchild,refchild)
相同之处:插入子节点
不同之处:实现原理方法不同。
appendChild方法是在父级节点中的子节点的末尾添加新的节点(相对于父级节点 来说)。
insertBefore 方法 是在已有的节点前添加新的节点(相对于子节点来说的)。
来看个这个简单的实例:在id为box-con 的末尾添加一个子节点div阅读全文
使用分析器。你可以使用类似于MVC-MiniProfiler的工具来分析方法调用,使用类似于.NET Memory Profiler或者Redgate ANTS Memory profiler之类的内存分析器来跟踪内存使用情况。
如果可以的话,要拥有可查询的日志——StackExchange团队有后台执行的进程,它会解析原始的日志,并把它插入到大型的、专门的SQL Server实例中。如果无法查询日志,那么你就无法绘制出统计图并查看趋势或者模式。
理解GC是如何工作的——.NET中的垃圾回收器支持三代对象(GEN 0到GEN 2),而存放时间最长的数据会使用GEN-2。GEN-2的扫描频率最低,执行的成本最高,甚至可能会堵塞其它线程。Sam建议阅读Rico的《Garbage Collector Basics and Performance Hints》一文以获得更多细节。阅读全文
data属性基本上所有的浏览器都是支持的,但是dataset对象就属于新贵,目前仅在Opera 11.1+, Chrome 9+下可以通过JavaScript,使用dataset访问你自定义的data属性。至于其他浏览器,FireFox 6+(未出)以及Safari 6+(未出)会支持dataset对象,至于IE浏览器,目前看来还是遥遥无期的趋势。具体的些兼容性数据,您可以点击这里访问。阅读全文
淘宝网随着用户和流量规模每年成倍增长,前台系统承受的压力也翻倍增大,而目前采用两种方式来解决:1)增加前台系统服务器的数量;2)提升单位服务器的吞吐量。起初允许我们通过不断增加服务器数量来进行扩容,但是当服务器数量在达到一定规模之后成本将是一个很大的问题,性能优化势在必行,我们通过对这些系统的服务端性能优化让单台服务器支撑的QPS翻倍,甚至更高。本次分享内容来自淘宝一些前台系统的性能优化实践。分享的内容从通过查找系统的性能瓶颈开始,理顺QPS和影响性能的CPU、内存、线程、IO等资源的关系,最终提出一些简单的方式提升系统的QPS。阅读全文
一、不再有“过时”这类说法
可能有些开发人员听过“这个标签过时了”类似这样的说法,指的是一些元素或是特征属性在当前HTML草案下是不合法滴,或者说是不再是当前HTML草案的一部分。但是,这种说法,只会出现在当前的HTML中,HTML5有着海纳百川的胸襟,许多在当前HTML中被当做恶徒的人在他那里都是有可取之处的家伙。
举个例子吧,如果你使用XHTML严格文档模型验证一个文档页面,同时这个页面中有iframe元素和target属性,那么验证的结果就会出现两个华丽丽的错误,如下截图:阅读全文
一棵树
大家或许会觉得并没有什么用处,放眼国内软件开发公司,有几个会有测试平台。但是软件要做好、公司要做大做强,像这样的测试平台还是要建立的。先收集在此,希望我们有一天会用到,当某一天需要的时候,还记得曾经看过,还知道在这里能够在看到。概要
伴随企业测试团队/人员的规模扩大,自动化测试作为测试基础建设里最重要的一个领域已经得到越来越多重视,各个测试团队在自动化测试技术的研究也越来越有针对性,其中自动化测试平台的建设是这其中关键中的关键,它的功能丰富完善度、易用性和扩展性优劣直接决定了团队在自动化测试上的建设速度和投资回报率。开源和商业的测试平台和框架也越来越多,但它们是否都100%满足自己的需要?我们在拿来的过程中是否也都感受到了这些框架/平台的很多制约和不足?阅读全文
箴言一、凡事无绝对
凡事无绝对。作为架构师,你永远不会对任何事情有百分百的把握,你永远无法面面俱到。不过在这个位置上,你就必须评估所有的可选方案,并作出有足够预见性的正确决策。你需要为自己争取一些时间,以便慢慢思考,因此首先说“凡事无绝对”,然后解释为什么是这样,变数有哪些。若你还不确定有些变数,那么可以选用这个通用的回答——“这取决于上下文”。
箴言二、需求是超越一切存在的
架构仅仅是软件项目中一个自然的链接部分。阅读全文