支付宝无线事业部UED招聘前端开发工程师

如果您具备以下技能中的任意5条,您就无需犹豫啦!发简历到下面的邮箱吧。
1、精通各种Web前端技术,包括XHTML/XML/CSS/Javascript等
2、理解Web标准,对可用性、可访问性等相关知识有实际的了解和实践经验
3、有基于Ajax应用开发经验
4、个性乐观开朗,逻辑性强,善于和各种背景的人合作
5、熟练使用jQuery框架,会使用YUI最好
6、至少掌握一门服务端编程语言。如Asp,PHP,.Net,Java或Python
7、有Wap站点开发经验者加分
8、有HTML5和CSS3开发经验者加分
9、有WebApp开发经验者最先考虑
10、我们希望你的学习能力很强
11、喜欢研究各种与Web前端相关的技术

以上招聘岗位工作地点在杭州,有意者请把简历发送至 qi.zhuq[at]alipay.com请勿以附件形式发送!
如想更多了解支付宝无线事业部,可访问这里

置顶文章! 继续阅读?

火花集招聘PHP开发工程师

火花集招聘PHP开发工程师,要求如下:
1:熟练使用Zend
2:熟练使用MySQL
3:会使用jQuery
4:了解HTTP工作原理
5:对web前后端性能优化及数据库优化有一定的实践
6:有Ajax项目开发经验
7:熟悉主流的建站系统,如phpcms,dedecms,discuz,ucenter
8:熟悉LAMP开发环境的搭建
9:熟练使用SVN版本控制
10:至少有一年的PHP项目开发经验
工作地点:杭州
有兴趣的朋友可以发我Gmail邮箱:qiqiyoujian@gmail.com

置顶文章! 继续阅读?

怎样命名你的Web站点文件?

您在思考这个问题的之前可能遇见过非常简单的文件名,如 page1.html、image2.png,或者一些比较复杂的文件名,如 QQ 客户端产品名称:QQPCMgr_Setup_Basic_66_2136.exe。不管简单还是复杂,您应该考虑文件名在做产品SEO时起到的作用!我们列举几个简单的例子:
1、你是否希望用户在 image.google.com 中输入你的产品名称时,让 google 准确的把你的产品显示出来?你当然希望,但要知道 google 虽强大但也不是万能的,google 需要你的配合:你需要提供准确的文件名称以便让 google 的蜘蛛去查找。
2、又比如你的推广图片,如果用户另存为你的图片发现是这样的名称:img1.png/20120-23rdad.png,用户会怎么想?尝试问一下自己 :-) ,所以你需要关注文件命 名相关的细节,你不妨从产品的命名或用途出发,来设计你的产品文件命名,比如乐高城市系列警匪组合玩具这款产品的相关文件,lego_city_police_1.jpg、lego_city_police_2.jpg、lego_city_police_pages_introduce.html
3、另外还要知道一个好的文件名可以有效的帮助用户更快速的分享你的图片或 web 文件。这是基于当前互联网的分享模式越来越被人们接受的大背景下所需要关注的细节。
我们拿 qq 产品与 360 的产品举列:
qq 客户端安装包的文件名取的就非常的好理解:
QQ2012Beta1.exe,看到这个文件就知道是 qq 的东西,而 360 安全卫士:
inst.exe 你能够分辨出这是 360 公司的产品吗?也许这是 360 公司故意做的。但不管怎样,我觉得这样的文件名是很难理解的。

以上所讲的似乎都和产品的市场、运营、体验有关,另外一个与本次话题相关的就是良好的文件命名能够提升工作效率。试想一下如果你把网站中的 javascript 文件放在一个 script 目录下,别人如何能够找到所需的 javascript 文件,又或者你把 html 文件都命名为 1.html、2.html 3.html,别人又该如何分辨出哪些是他需要的文件呢?等等这些问题都关乎到我们日常的工作效率,想提升项目的开发效率首先必须要有一套文件命名规范!

以上列举了一些简单的例子说明规范命名文件的重要性,下面谈下具体的命名方法
一般情况下我们对目录的命名取决于这个目录中存放的文件类型,通常以文件的扩展名做为目录名
如 image、js、css、html、class 等

对具体的文件命名可以根据它的用途。
如 index.html / alipay-logo.png / edit_pofile.html / widget_v1.1.js / default.css / 51.css / 61.css …

另外再对具体的文件命名时,也可以使用版本号
如 QQ 客户端: QPCMgr_Setup_Basic_66_2136.exe ,具体版本号定义方式可以阅读http://en.wikipedia.org/wiki/Software_versioning

请勿必使用小定字母
虽然你的计算机的操作系统不能够区分大小写的文件名,如 Index.html 和 index.html,你的计算机可能会解释为 Index.html 和 index.html 为同一个文件,但你的服务器可不一定认为这是同一个文件,大多数服务器的操作系统都是区分大小写的,因此它会认为这是两个完全独立的文件。你可以使用大驼峰或小驼峰方式命名你的文件

保持文件名的短小
虽然你可以使用很多真实的单词命名你的文件,你为什么非要使用如此长的文件名呢?难道保持短小的文件名不好吗?短小的文件名:当用户要从 url 地址栏复制跳转地址也方便,服务器在解析这些文件名字符串也快,何乐而不为呢?

总结:一套文件命名规范在一个团队或一个项目中非常重要!很多人代码写的很漂亮,单独工作的效率也高,但当在一个团队中你却发现他的某些方面问题比较明显,比如他的代码别人读不懂,他的文件别人找不到,这都是因为没有代码规范,没有做好文件命名。从现在起给你的团队做份文件命规范吧 :-)

移动平台前端开发技巧(五)

我们继续前面一节探讨移动平台前端开发中的一些技巧。这一节可能会包含一些PhoneGap 1.5方面的开发。
21、解决phonegap加载外部资源报错问题
当你使用Eclipse做Phonegap混合开发时,在html页面加载外部资源时会有报错消息,解决方案非常简单,你需要为phonegap添加一个外部url白名单即可,你可以在/res/xml/cordova.xml文件中添加,示例如下:

<?xml version="1.0" encoding="utf-8"?>
<cordova>
    <access origin="http://127.0.0.1*"/>
    <access origin="http://*.jquery.com"/>
    <log level="DEBUG"/>
</cordova>

22、解决webkitTransitionEnd事件响应多次
当你为一个元素指了-webkit-transition-property:all时,并且为该属性注册了webkitTransitionEnd事件,那么在动画结束后该元素的webkitTransitionEnd事件有可能会响应多次!webkitTransitionEnd事件会在当前元素的所有支持transition的css属性上注册一次,也就是说如果你指定了当前元素的3个css属性执行过渡动画,那么webkitTransitionEnd事件就会响应3次,看代码:

<style type="text/css">
form{
				background:red;
				-webkit-transition:all ease 0.5s;
				width:300px;
			}
			form.abc{
				background:blue;
				width:1000px;
			}
</style>

以上代码我指定了-webkit-transition-property为all,并且配置了background、width属性,那么webkitTransitionEnd事件将会响应2次,但很多的时候,我会只需要回调一次就行了,如何解决呢?
你可以通过webkitTransitionEnd事件的事件对象中的propertyName属性(event.propertyName)解决这一问题:

var form = document.querySelector('#form');

    form.addEventListener('click', function(){
        this.className = 'test';
        var callback = function(e){
            alert('transition finished.')
            if (e.propertyName == 'width') {
                this.removeEventListener('webkitTransitionEnd', callback, false);
            }
        };
        this.addEventListener('webkitTransitionEnd', callback, false);
    }, false);

23、PhoneGap 1.5 Android包Eclipse报错消息DroidGap Cannot be resolved to a type
PhoneGap 更新至1.5后,改名为Cordova,所以你要你是1.5+版,你的phonegap字段都应该修改为Cordova,所以phonegap官网的App.java示例代码中的import org.apache.phonegap.*应修改为import org.apache.cordova.*。很遣憾这一点在phonegap官方文档中都没有说明(截止我发稿时)。
24、解决phonegap中文乱码问题
在head标签内加入以下meta标签

<meta charset="utf-8" />

引入的javascript,可以在script标签中添加charset=”utf-8″属性。
24、解决eclipse对HTML5文档的校验
HTML5的新规范现在仍处于草案阶段,所以很多编辑器中的HTML代码提示功能及标签自动校验功能在编写HTML5文档会给开发者带来痛苦,比如eclipse,或者eclipse中的aptana开发插件的HTML标签校验是非常严禁的,且现在他们都不支持对HTML5新标签的识别,因此只要你的html文档存在错误,eclipse就无法运行应用。我们可以通过Eclipse -> Preference -> Aptana(如果你有安装Aptana插件) -> Editors -> HTML -> validation,取消Tidy Html Validator,然后Eclipse -> Preference -> Web -> HTML Files -> Validation,然后在elements标签中忽略对HTML标签的校验。
25、如何阻止客户端(浏览器)对HTML5表单的校验?
有时候开发者可能又想使用HTML5的新表单特性,但是呢又暂不想使用HTML5的表单自动校验功能(毕竟暂时还不太成熟),怎么办呢?我们不妨在该表单上添加novalidate属性

<form action="#" method="post" novalidate>

可阅读http://www.w3.org/TR/html5/forms.html#attr-fs-novalidate
25、如何获取移动设备的分辩率
有时候我们可能需要根据不同的设备分辩率做不同的业务处理,我们可以通过 devicePixelRatio

var ratio = window.devicePixelRatio,
    width = window.screen.width * ratio;

PHP 处理:

  if(isset($_COOKIE['pixel_ratio'])){
      $ratio = $_COOKIE['pixel_ratio'];
      if($ratio >= 2){
          echo '高分辩率设备';
      }else{
          echo '标准分辩率设备';
      }
  }

26、如何在 touchmove 事件中找到真实的手指下的节点?
通过 document.elementFromPoint,详见:https://developer.mozilla.org/en/DOM/document.elementFromPoint

27、如何消除Android和iOS点击元素时的边框?
可以尝试添加以下 css3 样式:-webkit-tap-highlight-color:rgba(0,0,0,0);

28、Android OS 键盘弹出会触发 window.onresize 事件
可以考虑使用 window.addEventListener(‘orientationchange’,callback,false) 解决

29、PhoneGap 不允许使用 file 协议加参数跳转页面
可以通过页面代理的方式解决,比如点击某个按钮将需要传递到下个页面的数据保存到本地,然后跳转到代理页面,在代理页面创建一个 iframe 标签,
js 获取到刚刚保存的数据,然后把跳转地址及数据写到 iframe 的 src 中即可。

{WebAPP、PHP HTML5、CSS3}