

编辑:S++小组
等待了将近两年的夏洛克终于播完了,虽然只有三集却再次的深深吸引了我。看完了BBC的神探夏洛克,直接导致我后面好一阵子浑浑噩噩的沉浸在剧情中而不能自拔。为此我买了全套的福尔摩斯的探案集,开始重新温习这本很早之前的著名侦探小说。一日突然看到微薄上转的这篇文章,我就无法自拔的再次陷入翻译此文的漩涡中。


编辑:S++小组
等待了将近两年的夏洛克终于播完了,虽然只有三集却再次的深深吸引了我。看完了BBC的神探夏洛克,直接导致我后面好一阵子浑浑噩噩的沉浸在剧情中而不能自拔。为此我买了全套的福尔摩斯的探案集,开始重新温习这本很早之前的著名侦探小说。一日突然看到微薄上转的这篇文章,我就无法自拔的再次陷入翻译此文的漩涡中。


编辑:S++小组
有一天我们去一个朋友家做客,本来半个小时的路程大家都一两个小时才找到地方,好不容易到达目的地之后,大家互相讨论之后才发现原来都是交通指示闯的祸。不由的联想到网站设计中的入口设计。网站是由大量的信息资源组成的,而能否将信息合理地推送给用户,则是产品生存的关键。怎样让第一次使用的用户能够在最短的时间内顺利找到需要的信息入口呢?拙劣的操作入口所带来的后果不堪设想,功能失效、位置隐蔽、信息干扰……都会给用户带来严重的挫败感,从而对整个网站失望。所以,明确合理的操作入口设计,是对产品有效性的保障,更是对用户体验的尊重。


编辑:S++小组
很多网站都会非常关注购买行为的用户体验而忽略了如何促进用户去进行购买操作。其实对于用户来说只有当他决策了之后才会去进行购买的行为,那么我们首先要了解,怎么样能让用户更容易决策呢?
建一间茅草屋和建一幢大楼有什么本质区别吗?可以说有,也可以说没有。
对于一个资深的建筑师,从一个小小的茅草屋的建造上也能看到各种工程学,也能看到各种设计。只不过应用场景比较简单,许多环节简化了。所以对他来说,两者没有本质区别,只是工程大小而已。
而对于一个没建过大楼只盖过茅草屋的人来说,他看到的、掌握的知识都受限,他一般是不懂得如何建造一幢大楼的。那么对于这样的人来说,两者有着本质的区别了。
回顾我们前面两篇连载,Canvas绘图基础、动画基础都已经讲述完毕,我们甚至也像模像样地画出了棋盘、棋子。让我们继续我们的事业吧。
我们本期目标是实现完整的行棋逻辑。因暂无AI,我们轮流拖拽两方棋子来行棋,每步棋要由程序判断是否合法。如果合法,则落子到目标位置,否则棋子返回原处。这中间使用前面讲过的动画效果。此外如果一个子被吃掉,动画过程结束后将其移出棋盘。
我们常用的script标签,有两个和性能、js文件下载执行相关的属性:defer和async
defer的含义【摘自https://developer.mozilla.org/En/HTML/Element/Script】
This Boolean attribute is set to indicate to a browser that the script is meant to be executed after the document has been parsed.
async的含义【摘自https://developer.mozilla.org/En/HTML/Element/Script】
Set this Boolean attribute to indicate that the browser should, if possible, execute the script asynchronously.
对于defer,我们可以先思考一个情况。一个页面如果有N个外链的脚本,放在head中,那么,当加载脚本时会阻塞页面的渲染,也就是常说的空白。在简单的开发环境中,我们可能只要将源代码中的外链脚本位置换一下就ok了。可是面对越来越复杂的开发环境,前端同事如果要后台开发同事调整一下脚本的位置,可能会花费大量的沟通成本和开发成本。我在去年的一个项目中就遇到过此类情况,当然也很感谢当时的后台开发同事的配合,他们都辛辛苦苦的调整了脚本的位置,解决了空白的问题。
原文:http://www.stevesouders.com/blog/2010/12/15/controljs-part-3/
关于ControlJs一共有三篇文章,这是第二部分。ControlJS是让脚本加载更快的一个模块(a javascript module for making scripts load faster). 三篇文章的结构分别为:
1. async loading [中文翻译:http://ued.ctrip.com/blog/?p=2964]
2. delayed execution [中文翻译:http://ued.ctrip.com/blog/?p=3017]
3. overriding document.write [中文翻译:http://ued.ctrip.com/blog/?p=3111]
ControlJS的目标是让开发者更好的控制脚本的加载。其中的关键是意识到”loading”有两个步骤:下载[download](获取内容)和执行[execution](包括解析).在ControlJS part 1(中文翻译:http://ued.ctrip.com/blog/?p=2964)中,我主要阐述了如何用ControlJS来异步加载脚本。在 ControlJS part 2 (中文翻译:http://ued.ctrip.com/blog/?p=3017)中,我们展示了通过延缓脚本的执行使页面更快速的加载,尤其是Ajax的网络应用,下载了大量的脚本,而这些脚本不需要立刻使用到的。在本篇中,我们将讨论一下在脚本异步加载时,document.write引发的问题。


编辑:S++小组
数据在很多网站都被看作是衡量一个产品或者一个设计好坏的基本指标之一。数据指标也曾经压的我很长一段时间喘不过气来。但是现在想想确实有时候数据能告诉你很多很多。它未必是衡量产品好坏的唯一标准,但是它也确实能告知你很多。


编辑:S++小组
在前一篇的校验思考中,我们整体概括了一些校验出现的类型,出现的情况,以及校验设计的设计原则与经验。而在具体设计过程中,需要结合产品的业务逻辑,旅游机票预订的全流程,是我碰到过交互逻辑中,相对比较复杂的情况,它的搜索来说也囊括了比较多的输入项,和各种类别的表单控件,因此它的校验情况也相对比较多样化。