杭州美巴科技有限公司招聘Web前端开发人员

时间:2010年11月12日作者:allen_lin查看次数:3,302 views评论次数:2

我们是在杭州刚刚起步的创业公司,我们正在开发以化妆品护肤品为中心的女性大型社区+电子商务网站,我们有强大的投资集团、淘宝大客户TP背景和线下资源,我们有很强大的开发团队,我们都是有想法有热情的年轻人,有潜力有前途。

如果您对化妆品和创业感兴趣,您愿意和公司一起成长, 一起分享奋斗的成果,欢迎加入我们!

职位要求:
1, 一年以上WEB前端开发经验, 女生更佳.
2, 精通HTML、CSS,对W3C网页标准有较深理解,熟悉网站重构、页面架构和页面布局,对语义化、结构与内容分离等有深刻理解,对用户体验有一定的理解。
3, 熟悉JavaScript,AJAX,jquery,能手写符合W3C标准、兼容多种浏览器的前端页面代码。
4, 有较好的理解和沟通能力,工作认真负责,具备团队合作精神,并能遵守项目开发规范。

以下为优先考虑条件:

1, 了解各类网站设计及制作流程,有门户站或大型网站建站经验者优先;
2, 有一定设计能力及色彩感者优先;
3, 了解python, 能与后台编程人员默契配合者优先;
4, 了解Silverlight、Flash等RIA技术者优先 ;
5, 接受能力强,可很快适应并学习新技术者优先。

月薪面议。

地点:杭州西湖区
邮件:linbingchun@hzsanshe.com
有意者请将你们的简历以及薪资要求发到此邮箱

如果您人不在杭州而有意过来,我们将会提供食宿和路费。

杭州美巴科技有限公司

分类:前端招聘

自己实现的简单的html元素选择器,类似jquery选择器,比jquery选择器还要快!

时间:2010年11月12日作者:satanultra查看次数:5,010 views评论次数:5

最近做前端,需要选择元素,虽说有jquery和各大js库已经帮我造好了轮子,但我想试试自己实现一个,正好项目也不忙,正好加入自己的js文件中,下面是实现代码。用$g(“#content .op”)这种格式就可以调用,和jquery $()的参数一样:
function $findChilds(parentNode, text)
{
    //如果不传入父节点的话,默认为body
    if(parentNode == undefined)
        parentNode = document.body;
    var childNodes = parentNode.childNodes;
    var results = [];
    //子节点大于零才循环
    if(childNodes.length > 0)
    {
        var length = childNodes.length;
        //循环查找符合text的节点
        for(var i=0;i<length;++i)
        {
            //三种情况,className,id, tagName
            switch(text.substr(0, 1))
            {
            case '.':
                //这两种:parentNode.getElementsByClassName,parentNode.all
//都是后来加上的,如果浏览器这两种方法都不支持,那就只能暴力递归了
                if(parentNode.getElementsByClassName)
                    return parentNode.getElementsByClassName(text.substr(1));
                else if(parentNode.all)
                {
                    var finded = [];
                    var jlength = parentNode.all.length;
                    for(var j=0;j<jlength;++j)
                        if(parentNode.all[j].className == text.substr(1))
                            finded.push(parentNode.all[j]);
                    return finded;
                }
                //以上两种方法都不支持,直接判断
                if(childNodes[i].className == text.substr(1))
                    results.push(childNodes[i]);
                break;
            case '#':
                return [document.getElementById(text.substr(1))];
            default:
                return parentNode.getElementsByTagName(text);
            }
            //判断完后,把当前子元素的子元素传入$findChilds进行递归查找,返回的结果直接和现在的结果合并
            results = results.concat($findChilds(childNodes[i], text));
        }
    }
    return results;
}  

String.prototype.vtrim = function() {
      return this.replace(/^\s+|\s+$/g, '');
}  

function $g(text)
{
    //按照空格分割参数
    var values = text.vtrim().split(" ");
    var length = values.length;
    //如果只有一个选择参数的话,就直接调用dom方法返回结果。
    if(length == 1)
        switch(values[0].substr(0, 1))
        {
        case "#":
            return document.getElementById(values[0].substr(1));
        case ".":
            if(document.getElementsByClassName)
                return document.getElementsByClassName(values[0].substr(1));
        default:
            return document.getElementsByTagName(values[0]);
        }
    //每次迭代都会产生许多符合参数的结果节点,这里结果节点的名称为parentNodes,第一次循环默认为body
    var parentNodes = [document.body];
    //外层循环为迭代每个传入的参数
    for(var i = 0; i < length; ++i)
    {
        var jlength = parentNodes.length;
        var results = [];
        //这里如果values的长度为零的话,
        //就说明是多出来的空格,
        //例如:$g("      .content");这种情况不执行代码直接跳入下一循环
        var tmpValue = values[i].vtrim();
        if(tmpValue.length <= 0)
            continue;
        //内层循环为迭代每个结果节点,
        //在结果节点中查找符合选择条件的结果。当然第一次为body
        for(var j=0;j<jlength;++j)
        {
            //$findChilds就是上边的那个函数,就是选择某个节点的子节点的
            var result = $findChilds(parentNodes[j], values[i].vtrim());
            var rlength = result.length;
            //因为返回的有时候是html容器,无法直接和数组concat所以倒入数组,这里有优化空间,但暂不考虑性能先这么做
            for (var k = 0; k < rlength; ++k)
                results.push(result[k]);
        }
        //没有结果,立即返回undefined
        if(results == undefined || results.length <= 0)
            return undefined;
        //最后一次循环就直接返回结果数组,但是如果最后一个选择条件是选择id的话,那就不返回数组直接返回dom对象了
        if (i == length - 1)
        {
            if (values[i].substr(0, 1) == "#")
                return results[0];
            return results;
        }
        parentNodes = results;
    }
}

经过在ff ie6下的测试 单纯的选择id比jquery要快很多,
其他的部分选择模式我测试的少数比jquery要快。
当然测试不可能全面,还可能会有bug,而且不支持类似于.content:first-child这样的伪类选择。

招聘Web前端开发工程师-北京安卓爱普科技有限公司

时间:2010年11月10日作者:愚人码头查看次数:4,444 views评论次数:3

  • 工作地点:北京 - 海淀
  • 工作年限:无要求
  • 招聘分类:前端工程师
  • 外语要求:英语 一般 能借助电子词典软件阅读技术文档
  • 工资范围:4000 ~ 9000
  • 福利待遇:能力特别优异者,不受此上限。
  • 招聘人数:2
  • 发布日期:2010/11/9
  • 截止时间:2011/1/9
职位描述

1.负责公司的Web应用和Mobile Web应用的页面输出、跨浏览器兼容。
2.产品交互效果的js实现,UE改善。
3.前端性能的优化,熟悉Firebug、YSlow等工具。
4.入职后能快速学习并掌握Mobile Web的HTML 5开发。

职位要求

1.技能
a – 比较熟悉XHTML/CSS/Javascript。
b – 能使用Jquery框架实现各种常见交互效果。
c – 了解Ajax原理和一般实现。理解前端代码与服务器端的交互过程,有整体大局观。
2. 真正发自内心热爱开发。
3. 英文水平能在借助电子字典软件下,顺畅阅读并理解国外技术文档。
4. 快速解决问题的能力,善于利用Google搜索和StackOverflow、Quora等国外技术论坛、问答网站。
5. 学校、专业、地域不限。

所有职位,
如果你是一个iPhone/Android等智能手机的重度玩家,
或者你热衷网购、甚至自己开了淘宝小店,
或者你是微博/Twitter上的话痨,有成千上万的粉丝,
我们都将优先考虑!

另外:
对从小学到研究生各阶段辍学者有强烈偏好,我们欣赏自学成长的王江民!
各类新奇技术的勇于尝鲜者、Apple、Google产品的重度用户尤其欢迎!
有创业失败经验但仍充满斗志愿意再来一次,我们张开臂膀欢迎!

联系方式

E-mail:hr@appou.com
联系电话:62612955
联系人:全恒
公司地址:北京海淀区苏州街49号623室

分类:前端招聘

前端快报

时间:2010年11月10日作者:愚人码头查看次数:3,638 views评论次数:3

web标准交流会(杭州)QQ群:17806070(仅限杭州前端加入)
========================================
据官方工作人员透入:web标准化交流会将于11月开通杭州站,欢迎杭州的前端工作者,前端爱好者届时参加!具体信息请关注web标准化交流会官方网站。期待第一期的交流主题。

分类:前端资源

【jQuery点滴】编写高性能的jQuery代码

时间:2010年11月03日作者:愚人码头查看次数:6,312 views评论次数:6

请记住 – jQuery只是JavaScript。不要以为它有能力来补偿你糟糕的代码。

这意味着,正如我们必须优化JavaScript for语句一样,我们必须优化jQuery的each方法。

// jQuery's each method source
	each: function( object, callback, args ) {
		var name, i = 0,
			length = object.length,
			isObj = length === undefined || jQuery.isFunction(object);

		if ( args ) {
			if ( isObj ) {
				for ( name in object ) {
					if ( callback.apply( object[ name ], args ) === false ) {
						break;
					}
				}
			} else {
				for ( ; i < length; ) {
					if ( callback.apply( object[ i++ ], args ) === false ) {
						break;
					}
				}
			}

		// A special, fast, case for the most common use of each
		} else {
			if ( isObj ) {
				for ( name in object ) {
					if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
						break;
					}
				}
			} else {
				for ( var value = object[0];
					i < length &amp;amp;amp;amp;&amp;amp;amp;amp; callback.call( value, i, value ) !== false; value = object[++i] ) {}
			}
		}

		return object;
	}

糟糕的代码:


someDivs.each(function() {
      $('#anotherDiv')[0].innerHTML += $(this).text();
});
  1. 每一次遍历循环中都会搜寻anotherDiv 这个ID的元素
  2. 两次获取innerHTML属性
  3. 创建了一个jQuery对象,只是为了获取元素的text属性
  4. 优化的代码:

    
    var someDivs = $('#container').find('.someDivs'),
    contents = [];
    
    someDivs.each(function() {
    contents.push( this.innerHTML );
    });
    $('#anotherDiv').html( contents.join('') );
    
    这样,在each (for)方法,我们唯一要执行任务的关键是增加一个新的到一个数组…而不是查询DOM中,取代了元素两次获取innerHTML属性等。
标签:,分类:jQuery

【jQuery点滴】保证你的代码安全

时间:2010年10月14日作者:愚人码头查看次数:6,585 views评论次数:4

在多人合作开发中一定要确保变量,对象,函数等命名不要冲突:
方法一:当别人使用了其他的js库,并该库使用了”$”变量,那么我们可以使用noConflict()方法:

<br />
var j = jQuery.noConflict();<br />
// Now, instead of $, we use j.<br />
j('#someDiv').hide();</p>
<p>// The line below will reference some other library's $ function.<br />
$('someDiv').style.display = 'none';<br />

方法二,把你的代码放在一个匿名函数里面,然后把jQuery作为参数传递给它,那么在这个函数体中的$是不会影响外面或者被外面影响的。

<br />
(function($) {<br />
// Within this function, $ will always refer to jQuery<br />
})(jQuery);<br />

方法三,通过ready方法传递$

<br />
jQuery(document).ready(function($) {<br />
// $ refers to jQuery<br />
});<br />
// $ is either undefined, or refers to some other library's function.<br />

一不小心写错了,谢谢 birdstudio和QiQiBoY指出!
或者使用简写:

<br />
$(function() {<br />
// let's get up in heeya<br />
});<br />

标签:,分类:jQuery

【jquery插件】图文切换效果

时间:2010年10月11日作者:愚人码头查看次数:8,400 views评论次数:2

参数说明:
effects “flaser”效果(默认)|
“scroll”效果|
“fade”效果
speed 效果执行时间;normal(默认)
标签:,分类:jQuery

【jQuery点滴】简写ready方法

时间:2010年10月10日作者:愚人码头查看次数:5,248 views评论次数:4

在jQuery中监听document 是否 ready的操作:


$(document).ready(function() {
// let's get up in heeya
});

我们可以简化成:


$(function() {
// let's get up in heeya
});

我们可以看jQuery源码,可以看出上面两种写法是一样的:


// HANDLE: $(function)
// Shortcut for document ready
if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
标签:,分类:jQuery

广东雨林木风招聘前端开发工程师

时间:2010年10月09日作者:愚人码头查看次数:5,256 views评论次数:5

职位要求:

  1. 精通HTML/XHTML、CSS等网页技术,熟悉PS、FW图片处理,熟练页面架构和布局方式,能够熟练手写HTML代码,对HTML5、css3有所了解并感兴趣;
  2. 熟悉JavaScript开发,能够熟练的使用JavaScript进行面向对象编程;
  3. 熟悉W3C规范及浏览器差异,熟悉Ajax技术;
  4. 了解PHP等服务器端语言者优先考虑。

:此职位需要1年以上的web应用页面开发经验,第1项为应聘必要条件,有较强的学习能力以及细致的工作态度者优先考虑,性别不限。

工作地点:广东东莞松山湖
联系:cai (at) 115.com

【jQuery点滴】不要滥用$(this)

时间:2010年10月08日作者:愚人码头查看次数:5,933 views评论次数:8

如果不了解javasrcipt中基本的DOM属性和方法的话,很容易滥用jQuery对象。比如:


$('#someAnchor').click(function() {

alert( $(this).attr('id') );

});

如果你只是通过jQ对象获取简单的dom元素的属性比如id,那么你完全可以使用js原生的方法:


$('#someAnchor').click(function() {

alert( this.id );

});

诸如“src,” “href,” 和“style.”等一些属性在老版本的ie中使用了getAttribute方法。

标签:,分类:jQuery