前端开发工程师岗位职责

2021-03-20 来源:岗位职责收藏下载本文

推荐第1篇:什么是前端开发工程师

www.daodoc.com

什么是前端开发工程师

前端开发工程师是Web前端开发工程师的简称,是近五年才真正开始受到重视的一个新兴职业。Web前端开发技术是一个先易后难的过程,主要包括三个要素:HTML(标准通用标记语言下的一个应用)、CSS和JavaScript,这就要求前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化、SEO和服务器端的基础知识,而且要学会运用各种工具进行辅助开发以及理论层面的知识,包括代码的可维护性、组件的易用性、分层语义模板和浏览器分级支持等。

前端开发工程师是一个很新的职业,在国内乃至国际上真正开始受到重视的时间2005年开始,是指Web前端开发工程师的简称。 Web前端开发是从美工演变而来的,名称上有很明显的时代特征。在互联网的演化进程中,Web 1.0时代,网站的主要内容都是静态的,用户使用网站的行为也以浏览为主。

2005年以后,互联网进入Web 2.0时代,各种类似桌面软件的Web应用大量涌现,网站的前端由此发生了翻天覆地的变化。网页不再只是承载单一的文字和图片,各种富媒体让网页的内容更加生动,网页上软件化的交互形式为用户提供了更好的使用体验,这些都是基于前端技术实现的。

www.daodoc.com

随着Web 2.0概念的普及和W3C组织的推广,网站重构的影响力正以惊人的速度增长。XHTML+CSS布局、DHTML和Ajax像一阵旋风,铺天盖地席卷而来,包括新浪、搜狐、网易、腾讯、淘宝等在内的各种规模的IT企业都对自己的网站进行了重构。

(ps:本文章由北大青鸟广安门校区搜集自互联网)

推荐第2篇:WEB前端开发工程师笔试试题

WEB前端开发工程师笔试试题

1.HTML的含义是什么?其主体部分由什么标记构成?

2.说明在网页设计中div标签的作用

3.CSS指的是什么?在网页制作中为什么要使用CSS技术

4.c 中id和cla如何定义,哪个定义的优先级别高?如cla定义一个html元素没有边框,而id定义这个元素有边框,结果呢?

5.IE6下为什么无法定义1px左右高度的容器

6.怎么样才能让层显示在FLASH之上?

7.怎样使一个层垂直居中于浏览器中(代码实现)?

8.firefox嵌套div标签的居中问题,假定有如下情况:

如果要实现b在a中居中放置,该如何实现?

9.web标准网站有哪些优点?

10.怎样解决超链接访问过后hover样式就不出现的问题?

推荐第3篇:前端开发和美工工程师工作总结

前端开发和美工工程师工作总结

作为公司的网站前端开发和美工,2017年本人主要负责的是经文保总队的各个系统的界面设计及动态页面制作,包括以下内容:

一、吉林省单位内部安全保卫平台内网及外网设计及制作,同时包括平台下边九个子系统首页制作(包括经文保综合管理系统、散装汽油销售管理系统、安保人员考试系统、高校少数名民族学生管理系统、考试服务系统、金融服务系统等);

二、公安内网网站吉林公安经文保信息网整站设计及动态效果制作和后期维护;

三、吉林省单位内部安防信息网协同其他行政部门联合办公系统整站设计及动态网页制作;

四、系统内警踪平台整体界面制作;

五、经文保警用手机、平板app客户端界面设计及切图;

六、移动端网站建设;

七、经文保管辖单位重点部位和检查项3d全景建模技术学习及制作,720云场景应用线上展示重点单位主要监控部位动态效果。

经文保之外的临时项目与任务,包括以下内容:

一、省移动公司处系统项目界面设计及制作,家庭宽带项目管理系统界面制作及相关临时项目需要制作;

二、省公安厅汇报项目美化设计;

三、甘南农业项目app客户端制作及后台信息管理系统界面制作;

四、吉林省网优大数据平台demo制作;

五、公司电力部和工程部各类材料、检验报告合同修改以及发票制作;

六、社保材料制作;

七、临时投标演示项目demo效果制作。

以上列出了本人2017年的工作内容,首先感谢公司提供这样优秀平台和机会,让我在工作中和公司一起度过忙碌而充实的一年,工作中努力协同后台开发人员一起完成界面系统的精美展现,同时选择当下主流框架界面,仔细研究客户的需求和业务流程,不断优化用户操作界面,提供给用户良好的用户体验和用户舒适度。

除了系统开发这一块,在经文保项目还中应用了新领域的720度3d全景动态展示技术,720全景动画展现也是近几年比较火爆市场需求,结合百度地图,实景展现任何地方的办公及生活场景。

这一年做项目过程中在本岗位上提升了自己,同时也学习了新领域的知识,不断充实自己赶在技术的前沿,随时接受新的任务和挑战。

希望公司在新的一年里拓展新领域业务,课余多开展一些培训活动,提高员工学习新技术的积极性,同时培养团队能更好的配合完成任务。

在工作之外,希望公司多组织一些体育活动和知识竟赛活动,这样在日常工作中既可以活动身心和头脑,有能找到更多的工作乐趣,劳逸结合,才能更好的钻研项目,在技术领域有更多的突破,和公司共同创新与成长,同时希望公司项目顺利开展,我会尽全力发挥自己的能力,实现个人的目标和公司的目标,在飞快发展的大环境下和公司共同进步,最后希望公司未来发展越来越好!

推荐第4篇:Web前端开发

Web前端开发_Tip 理论篇

WEB标准

WEB标准不是某一个标准,而是一系列标准的集合。网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。对应的标准也分三方面:结构化标准语言主要包括XHTML和XML,表现标准语言主要包括CSS,行为标准主要包括对象模型(如W3C DOM)、ECMAScript等。这些标准大部分由W3C起草和发布,也有一些是其他标准组织制订的标准,比如ECMA(European Computer Manufacturers Aociation)的ECMAScript标准。

结构标准语言 XML XML是The Extensible Markup Language(可扩展标识语言)的简写。目前推荐遵循的是W3C于2000年10月6日发布的XML1.0,参考(www.daodoc.com/]理解表现和结构相分离 ),相同的结构的内容我们可以用同一个样式来定义,比如相同级别的标题、正文、图片。对于多次引用的样式可以用cla来定义,不需要每个都用id;另外也不是说一定要用,你完全可以用别的来代替,同样都是块级元素,一样有盒模型的七个参数,仅仅方便浮动。

至于仅仅为了行高、间距、一个修饰图片而增加额外的div,我想随着对CSS的应用和理解,你很快就可以省略掉这些。我们反对用DIV的嵌套取代table的嵌套,这没有任何意义,不能体现内容的结构化。希望大家多研究CSS,写出最简练,最有效的样式表。 4.不要因为一点挫折就轻言放弃

我想这是一个态度和处事方法问题,这不仅仅针对学习web标准。学习任何新知识,接受新概念,都有困难,特别是需要你改变原来已有的习惯和思维时。唯一的问题就是:你认为学习web标准是否值得?你可以问问自己:你是否认可web标准带来的这些好处(简化代码、加速开发、压缩文件尺寸、提高下载速度、更好的易用性、获得更多用户、更易于维护、多平台兼容)?你是否觉得世界通用的XML离你还很远?你是否认为现在掌握的HTML知识就已经足够了?

自从99年以后,网页制作技术在国内就没有怎么进步和变革过(除了flash的兴起),而在国外前进的脚步就一直没有停止过,xhtml1.0、xhtml1.1、xml、xsl...,W3C和各大软件公司都在不断的研究和推进web技术,使它更方便、更有效、更强大。web标准的应用和推广国外已经开展了八年多(以zeldman的web标准组织网站为起点),虽然困难重重,但正在逐步被人们接受和认可。为什么我们依然陶醉在网站表面的“繁华”上,不去思考页面背后本质的东西。 比较AS2.0和AS3.0在面向对象方面的异同 1.定义

ActionScript 2.0:实际上是as1.0的升级版,首次将OOP(Object Oriented Programming,面向对象的程序设计)引入Flash,但并不是完全面向对象的语言,只是在编译过程中支持OOP语法。

ActionScript 3.0:是一个完全基本OOP的标准化面向对象语言,最重要的就是as3.0不是as2.0的简单升级,而完全是两种思想的语言。可以说,as3.0全面采用了面向对象的思想,而as2.0则仍然停留在面向过程阶段,举个例子,就像VB和C#的感觉。在as3.0里,可以看到java和c#的影子,确实,这三种语言大部分思想都是一致的,只有一些小的区别,比如as3.0引入了命名空间的概念,但是不支持比如委托,在包封装及外部访问上也引入了一些新概念。

2.发展过程

一、ActionScript 1.0最简单、最灵活、比较容易理解。既可以用原始的方式一个个地创建影片、设置对象的事件处理函数,等等。

早期的flash 3中的ActionScript 1.0语法冗长,主要的应用是围绕着帧的导航和鼠标的交互.这种状况一直保持到flash 5。到flash 5版本时ActionScript已经很象JavaScript了。它提供了很强的功能和为变量的传输提供了点语法。ActionScript同时也变成了一种prototyped(原型)语言,允许类似于在javscript中的简单的oop功能。这些在随后的flash mx(6)版本中得到的增强。

二、ActionScript 2.0则相对比较规范,是1.0的升级版。首次将OOP引入FLASH。

Flash MX2004(7)引入了ActionScript 2.0,它带来了两大改进:变量的类型检测和新的cla类语法。ActionScript 2.0的变量类型会在编译时执行强制类型检测。它意味着当你在发布或是编译你的影片时任何指定了类型的变量都会从众多的代码中剥离出来,检查是否与你现有的代码存在矛盾冲突。如果在编译过程中没有发现冲突,那么你的swf将会被创建,没有任何不可理解变量类型的代码将会运行。尽管这个功能对于flash player的回放来说没有什么好处,但对于flash创作人员来它是一个非常的好工具,可以帮助调试更大更复杂的程序。

在ActionScript 2.0中的新的cla类语法用来在ActionSctipt 2.0中定义类。它类似于Java语言中的定义。尽管Flash仍不能超越它自身的原型来提供真正的cla类,但新的语法提供了一种非常熟悉的风格来帮助用户从其它语言上迁移过来,提供了更多的方法来组织分离出来As文件和包。

三、ActionScript 3.0更加系统、规范。完全OOP。

接下来我们进入到flash CS3(9;在flash8中没有发生多大的变化)ActionScript 3.这里我们不光有一个带有新的版本号的ActionScirpt 语言,还有一个全新的虚拟机即—Flash Player在回放时执行ActionScript的底层软件。ActionScript 1.0和ActionScript 2.0都使用是AVM1(ActionScript 虚拟机1),因此它们在需要回放时本质上是一样的,记得我们在ActionScript2上说过它增加了强制变量类型和新的类语法,它实际上在最终编译时变成了ActionScript 1,而ActionScript 3.0运行在AVM2上,一种新的专门针对ActionScirpt 3代码的虚拟机。基于上面的原因,ActionScript 3.0影片不能直接与ActionScript 1和ActionScript 2影片直接通讯(ActionScript 1和ActionScript 2的影片可以直接通讯,因为他们使用的是相同的虚拟机;如果要ActionScirpt 3影片与ActionScirpt 1.0和ActionScript 2.0的影片通讯,只能通过local connection),但是你会发现ActionScript 3.0的改变更深远更有意义。

3.flash as2.0 与as3.0的本质区别

一、虚拟机

在编译阶段,as2采用的是AVM1(actionScript vitual machine),而as3采用的是AVM2。新一代虚拟机采用了OOP思想,在执行速度上比起avm1也快了10倍。还提供了异常处理。以前我们在使用AS2时,一旦出错,AVM1选择的是静默失败,让人根本不知道什么地方出错了,会浪费大量的时间去查错,而AVM2与目前主流的编译器一样,会有异常处理,运行出错会输出错误提示,工作效率大大提高。如果做个对比,我想说,AVM1就是大刀长矛,而AVM2就是手枪,大刀和长矛也能杀敌,但是只在面对弱智的敌人才能发挥作用,面对一个大型项目,不用点现代化工具是不行滴。

二、事件机制

这也是很多人拿起as3就不知所措的原因,初学者会发现连一个按钮点击的方法都写不出来。实际上as3的事件机制采用的是监听的方式,和as2的onClipEvent不同,as3里所有的事件都是需要触发器,监听器,执行器三种结构的,这样做的好处就是使得这个语言非常的坚强,非常大标准化。不像as2,奇形怪状的代码漫天飞,可以这样写,也可以那样写,代码变得繁复难懂,可读性太差,执行效率也大大降低。要特别说明的是,as3的所有事件都直接继承event对象,而event是直接继承自BOSS类object,结构多么完美。所以在as3中,所有的事件都继承自相同的父亲,结构相同,提高了重用性。

三、封装性

这是as3与as2最大的不同,as3引入了封装的概念,使得程序安全性大大提高,各个对象之间的关系也通过封装,访问控制而得以确定,避免了不可靠的访问给程序带来的意外产生。

四、XML 我觉得这是最令人激动人心的改变,现在as3程序员可以很轻松也很自豪的说,我们是使用XML人群中最快乐的人。AS2时代对XML的存取仍然需要解析,而AS3则创新的将XML也视作一个对象,存取XML就像存取普通对象的属性一样方便,用点语法就可以,无疑大大提高了效率。

五、容器的概念

AS3.0采用了容器的思想,告别了as2.0一个MovieClip打天下的局面。对于as2程序员来说,可能不能理解,我mc用的好好的,干嘛不让我用啊。但是当你真正的了解as3.0的思想的时候,当你真主的体会到OOP的好处的时候,你会觉得as3.0的容器的思想的完全正确的。as2.0时代,我们做什么都用mc,而as2.0时代的mc也是直接继承自object,这给了mc极大的权限,极其多大方法属性,而有时我们只需要放一个背景图,这样做就造成了极大的浪费。说实在话as2.0和as3.0比起来就是浪费之神,所以as2.0编出的swf绝对比as3.0编译出来的swf要大上几倍。as3.0把所有你用到的显示对象都分开,mc的属性方法都被瓜分开来,举个例子,你去水果超市买水果,就肯定比直接去大型超市买要方便,更节约时间,时间就是金钱,那就是很大的节省。

4.AS3.0新特性

一、OOP方面的增强

通过类定义而生成的实例,在 AS3 中是属于 Sealed 类型,即其属性和方法无法在运行时修改。这部分属性在 AS2 中是通过类的 prototype 对象来存储,而在 AS3 .0中则通过被称为 Trait 的概念对象存储管理,无法通过程序控制。这种处理方式一方面减少了通过 prototype 继承链查找属性方法所耗费的时间(所有父类的实现方法和属性都会被直接复制到对应的子类的 Trait 中),另一方面也减少了内存占用量,因为不用动态的给每一个实例创建 hashtable 来存储变量。如果仍然希望使用 AS2 中类实例在运行时的动态特性,可以将类声明为 dynamic。

二、API方面的增强

新增 Display API,使 AS3 可以控制包括 Shape, Image, TextField, Sprite, MovieClip, Video, SimpleButton, Loader在内的大部分 DisplayList 渲染单位。这其中 Sprite 类可以简单理解为没有时间轴的 MovieClip,适合用来作为组件等不需要时间轴功能的子类的基础。而新版的 MovieClip 也比 AS2 多了对于 Scene(场景)和 Label(桢标签)的程序控制。另外,渲染单位的创建和销毁通过联合 new 操作符以及 addChild/removeChild 等方法实现,类似 attachMovie 的旧方法已被舍弃,同时以后也无须去处理深度值。

新增 DOM Event API,所有 在DisplayList 上的渲染单位都支持全新的三段式事件播放机制,以 Stage 为起点自上而下的播报事件到 target 对象(此过程称为 Capture Phase),然后播报事件给 target 对象(此过程称为 Target Phase),最后在自下而上的播报事件(此过程称为 Bubbling Phase)。

新增内置的 Regular Expreions (正则表达式)支持,使 AS3 能够高效地创建、比较和修改字符串,以及迅速地分析大量文本和数据以搜索、移除和替换文本模式。

新增 ECMAScript for XML (E4X)支持。 E4X 是 AS3 中内置的 XML 处理语法。在 AS3 中 XML 成为内置类型,而之前的 AS2 版本 XML 的处理 api 转移到 flash.xml.*包中,以保持向下兼容。

新增 Socket类,允许读取和写入二进制数据,使通过 AS 来解析底层网络协议(比如 POP3, SMTP, IMAP, NNTP 等)成为可能,使 Flash Player 可以连接邮件服务器和新闻组。

新增 Proxy 类来替代在 AS2 中的 Object.__resolve 功能。 新增对于 Reflect (反射)的支持,相关方法在 flash.util.* 包中。

5.总结

一、AS3.0和2.0的代码不能混用,且不能和装载的as2.0或1.0的swf相互通信

使用AS3.0可以加载AS2.0 或者 1.0的swf。但是AS3.0不可以访问加载swf中变量和函数。为了方便理解,我们可以想成两个虚拟机并行工作,但是不能通信。事实上,我猜实现机制可能就和这个差不多LocalConnection。

使用AS2.0或1.0编写的swf是不可以加载AS3.0的。换句话说Flash 8&Flex 1.5及之前所有工具生成的swf都不可以加载(load)AS 3.0 swf的。

如果想让AS2.0或1.0的swf与AS3.0 swf协同工作,那么AS2.0&1.0的文件必须进行移植。就是说转成3.0。

单个的swf文件中是不能混合使用AS3.0&AS2.0(或者1.0)的。 不会像AS2.0&1.0那样混用了,毕竟是AS2.0&AS3.0是两个不相同的虚拟机。

一句话总结,就是AS3.0可以加载以前的所有版本的swf,但是只是简单加载,不能访问AS2.0(或1.0)的swf内部变量&函数,无法交互。

二、所采用的编程方式

as 3.0所采用的编程方式是与java C++非常类似的面向对象编程方式,不论在语法上还是在设计思路上。 只要你有java C++基础,那学 AS是非常轻松的。不过AS3.0不能像java C++那样操作底层数据,如存储数据等,必须通过后台语言如php asp 等来实现,而且运行大规模数据时会慢一些。 as 2.0以往是主要面向过程的编程方式,也就是说想到哪就可以写到哪,但到3.0之后就不行了,你必须把每一块程序都写到一个类中,让类和类之间进行联系。凡事都是类的理念。

其实不同的事情有很多,但是也可以这么讲,AS3.0与AS2.0是一样的,只是语法不同了,编程思路不同了,但核心内容不变,也就是说,如果你精通AS2.0,那么,你离精通3.0就不远了。因为你在编程进对算法的掌握和思想都是相通了。

三、as2.0到as3.0的转换

在AS2项目往AS3转换/移植的过程中,不要想象这只是一个语法转换的过程,实际上,你不得不考虑AS3以及其类库中的一些新机制,所能带来的性能以及程序结构良好性的提升。因此,可能很多东西,你得重新设计,特别是可视元素和事件相关的,也就是用户交互方面的东西,我认为是必须得根据AS3的特点重新设计的,否则转换是无价值的,甚至会得到更差的程序。一些纯算法方面的代码,可能不需要重新设计,直接替换一些语言层面的东西即可。还有FlashPlayer的速度提升使代码执行速度提升10倍左右,可视元素运行/渲染速度平均提升2倍左右,位图渲染速度有比较明显的提升。

一些在AS2里面我们需要的东西,在AS3里面,我们不再需要了;一些用AS2做出来的东西,运行起来效率不够理想,用AS3做出来,运行得更快了;一些AS2里面不可能做到的东西,在AS3里面,我们可以做了。 CSS盒子 前言

如果你想尝试一下不用表格来排版网页,而是用CSS来排版你的网页,也就是常听的用DIV来编排你的网页结构,又或者说你想学习网页标准设计,再或者说你的上司要你改变传统的表格排版方式,提高企业竞争力,那么你一定要接触到的一个知识点就是CSS的盒子模式,这就是DIV排版的核心所在,传统的表格排版是通过大小不一的表格和表格嵌套来定位排版网页内容,改用CSS排版后,就是通过由CSS定义的大小不一的盒子和盒子嵌套来编排网页。因为用这种方式排版的网页代码简洁,更新方便,能兼容更多的浏览器,比如PDA设备也能正常浏览,所以放弃自己之前钟爱的表格排版也是值得的,更重要的是CSS排版网页的优势远远不只这些,本人在这里就不多说,自己可以去查找相关信息。

理解CSS盒子模型

什么是CSS的盒子模式呢?为什么叫它是盒子?先说说我们在网页设计中常听的属性名:内容(content)、填充(padding)、边框(border)、边界(margin), CSS盒子模式都具备这些属性。

这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也具有这些属性,所以叫它盒子模式。那么内容就是盒子里装的东西;而填充就是怕盒子里装的东西(贵重的)损坏而添加的泡沫或者其它抗震的辅料;边框就是盒子本身了;至于边界则说明盒子摆放的时候的不能全部堆在一起,要留一定空隙保持通风,同时也为了方便取出嘛。在网页设计上,内容常指文字、图片等元素,但是也可以是小盒子(DIV嵌套),与现实生活中盒子不同的是,现实生活中的东西一般不能大于盒子,否则盒子会被撑坏的,而CSS盒子具有弹性,里面的东西大过盒子本身最多把它撑大,但它不会损坏的。填充只有宽度属性,可以理解为生活中盒子里的抗震辅料厚度,而边框有大小和颜色之分,我们又可以理解为生活中所见盒子的厚度以及这个盒子是用什么颜色材料做成的,边界就是该盒子与其它东西要保留多大距离。在现实生活中,假设我们在一个广场上,把不同大小和颜色的盒子,以一定的间隙和顺序摆放好,最后从广场上空往下看,看到的图形和结构就类似我们要做的网页版面设计了,如下图。

现在对CSS盒子模式理解多少了,如果还不够透彻,继续往下看,我会在后面举例,并延用盒子的概念来解释它。

转变我们的思路

传统的前台网页设计是这样进行的:根据要求,先考虑好主色调,要用什么类型的图片,用什么字体、颜色等等,然后再用Photoshop这类软件自由的画出来,最后再切成小图,再不自由的通过设计HTML生成页面,改用CSS排版后,我们要转变这个思想,此时我们主要考虑的是页面内容的语义和结构,因为一个强CSS控制的网页,等做好网页后,你还可以轻松的调你想要的网页风格,况且CSS排版的另外一个目的是让代码易读,区块分明,强化代码重用,所以结构很重要。如果你想说我的网页设计的很复杂,到后来能不能实现那样的效果?我要告诉你的是,如果用CSS实现不了的效果,一般用表格也是很难实现的,因为CSS的控制能力实在是太强大了,顺便说一点的是用CSS排版有一个很实用的好处是,如果你是接单做网站的,如果你用了CSS排版网页,做到后来客户有什么不满意,特别是色调的话,那么改起来就相当容易,甚至你还可以定制几种风格的CSS文件供客户选择,又或者写一个程序实现动态调用,让网站具有动态改变风格的功能。

实现结构与表现分离

在真正开始布局实践之前,再来认识一件事——结构和表现相分离,这也用CSS布局的特色所在,结构与表现分离后,代码才简洁,更新才方便,这不正是我们学习CSS的目的所在吗?举个例来说P是结构化标签,有P标签的地方表示这是一个段落区块,margin是表现属性,我要让一个段落右缩进2字高,有些人会想到加空格,然后不断地加空格,但现在可以给P标签指定一个CSS样式:P {text-indent: 2em;},这样结果body内容部分就如下,这没有外加任何表现控制的标签:

加进思源社区有一段时间了,但一直没有时间写点东西,今天写了一篇有关CSS布局的文章,并力求通过一种通俗的语言来说明知识点,还配以实例和图片,相信对初学CSS布局的人会带来一定的帮助。

如果还要对这个段落加上字体、字号、背景、行距等修饰,直接把对应的CSS加进P样式里就行了,不用像这样来写了:

段落内容

这个是结构和表现混合一起写的,如果很多段落有统一结构和表现的话,再这样累加写下去代码就繁冗了。

再直接列一段代码加深理解结构和表现相分离:

用CSS排版

height:80;

width:100;

margin:5px auto; } -->

推荐第5篇:前端开发心得

web前端核心技术

从事前端开发工作1年多了,从最初的DIV+CSS学起,到现在学到html

5、c

3、javascript,jquery等等,我觉得前端要学的技术太多了,很多人认为前端开发要掌握的技能简单,就是网页制作,其实不然,前端开发是网站的前台代码实现,包括基本的HTML和CSS以及JavaScript/ajax,现在最新的高级版本是HTML

5、CSS3,以及SVG等。JavaScript作为最难的语言之一,许多编程高手也不敢妄自菲薄、自封精通。

关于兼容性的问题我相信对于每个做前端开发的人来讲是一个很头疼的问题,互联网目前主流浏览器有IE6\\7\\8\\9,Firefox,Chrome,Opera,Safari,遨游,包括国内主流的搜狗,腾讯 TT,360等等;从内核上讲主要有IE的,遨游版IE,safari,firefox以及opera的,这些都是大家常见的。所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况。在大多数情况下,用户用什么浏览器来查看同一网站,都应该是统一的显示效果。所以浏览器的兼容性问题是前端开发人员经常会碰到和必须要解决的问题。这个时候就需要针对不同的浏览器写不同的CSS,这个过程叫CSS hack。虽然我们写代码都要求按照标准,不写hack代码,但实际工作中为了兼容主流浏览器,hack代码是免不了的,所以这也应该是每个前端开发人员必备的技能。

前端的开发工具很多,比较常见的有Dreamweaver,Notepad,webstrom,Sublime Text等等,我现在在使用webstorm,强大的提示功能可以帮助我们很快的熟悉并掌握网页布局,检查错误等。调试代码的工具我使用的Firebug。Firebug是网页浏览器Mozilla firefox 下的一款开发类插件,它集HTML查看和编辑、Javascript控制台、网络状况监视器于一体,是开发JavaScript、CSS、HTML和Ajax的得力助手。Firebug如同一把精巧的瑞士军刀,从各个不同的角度剖析Web页面内部的细节层面,给Web开发者带来很大的便利。Firebug也是一个除错工具。用户可以利用它除错、编辑、甚至删改任何网站的CSS、HTML、Dom 以及Javascript代码。

以上是自己做前端开发的一点心得,它所涵盖的知识面远远不止这些,我也在不断的学习,不断地丰富自己,希望自己能在前端这个职位上开阔自己的一片天地!

推荐第6篇:前端工程师面试题

1.对于Web2.0的理解;

2.常用的WEB开发和测试工具(JS,CSS,HTML,程序脚本……);

3.对于网站优化的理解(SEO,UEO);

4.通过哪些网站或者博客了解和交流互联网最新技术;

5.最欣赏哪些网站;

6.对开发框架的理解;

7.请用c实现下列要求的效果:

1.一个列表包含标题和时间

2.列表宽度固定,高度自由设置

3.时间紧跟标题,但标题过长时需要隐藏。

*以上问题没有正确答案,文章最后,我自己做了回答,但这绝对不是正确答案;

这里,也想说说对企业招聘的一些个人看法:

对于企业的招聘,如果仅仅停留在我想找一个能做事的人,那么在这样的企业工作,是没有太多发展机会的;

面试的主要目的是增强应聘者与企业之间的了解和信任,好企业,会更多的想了解求职者的职业发展前景,以及目前发展遇到的瓶颈等;

作为应聘者,我遇到过一些招聘官,提出的问题很肤浅,甚至想通过最基本的函数语句和代码来了解我的工作能力,这给我的印象很差;

招聘官的大忌(个人看法):

在未做自我介绍和企业介绍前,就先开始提出一大堆问题,很不礼貌; 面试中,提出的问题之间的没有任何关联性,也没有层次性;

过多的专注于技术细节方面的提问;

多人同时面试;

求职者的大忌(个人看法):

回答问题时,目光从不正视面试官;

着装与应聘职位/职业不服;

把薪酬作为第一考虑因素;

回答/陈词未考虑严谨,且语速过快,重复的做遗漏点补充;

过多的使用不确定词语:可能、或许、大概、基本上、应该……;

===================答案===================

1.对于Web2.0的理解;

从两个方面理解Web2.0,

从技术角度说,Web2.0应该是具有可扩展性,具有可延伸性,具有良好

的用户体验性能,符合WEB标准的一个平台性Web产品;

从商业模式角度说,Web2.0是用户创造信息和传播信息的,以用户为中心作为运营理念,由用户创造客户,再有客户带来收入的一个开放性平台;

2.常用的WEB开发和测试工具(JS,CSS,HTML,程序脚本……);开发工具:Dreameweaver,EditPlus

测试工具:Firefox+插件(Firebug,Yslow…),IETest

3.对于网站优化的理解(SEO,UEO);

网站优化包括两个方面,SEO和UEO(搜索引擎优化和用户体验优化) SEO主要是通过对代码的精简和使用语意化的HTML标签,来实现网站尽可能快、准、全的被搜索引擎搜录,并排名靠前;

UEO主要是通过对CSS,JS以及后台脚本的优化,实现网站界面和用户使用流程的优化;

4.通 过哪些网站或者博客了解和交流互联网最新技术;

淘宝UED团队博客,腾讯CDC团队博客,UCDChina,Blueidea,CNBeta,Sourceforge,Google Code

5.最欣赏哪些网站;

淘宝网,腾讯网,Wordpre

6.对开发框架的理解;

开发框架是在底层程序语句的基础上,形成的规范化的开发工具;

框架的形成,简化了开发的流程,提高了开发的效率,但不限制开发的灵活性;

在 框架的基础上,开发人员省去了底层脚本的编写,更专注于事务的执行和功能的开发;

推荐第7篇:前端工程师常用工具

前端工程师常用工具

虽然有一段时间不做前端工程师,但还是免不了做前端的思维,碰到了很好的前端实用工具帖还是忍不住转了过来。这个帖子被转了好多次了,也不知道原本的作者是谁,但无论是谁都是万分的感谢,没有您的整理也没有大家的方便。

帖子整理了前端工程师常用的工具手册以及一些著名的相关博客,是工作中不可缺少的资料。 概要:

 

  

   IE下的调试工具前端开发者社区及权威网站前端开发工具集

在线工具集

o o o o 

o o o o 弃他了

o

o o 

o

o o 其他:—— 做某些东西(Firefox插件)时需要唯一资源标志符时用CSS类: CSS选择器性能测试—— CSS格式化工具 CSS Compreor —— CSS压缩 书籍类: Book Shelf 2.0 beta —— 荐,分类很清晰,下载很方便原版图书免费下载链接收集站JavaScript类:—— JavaScript格式化工具,效果很理想 AJAX Libraries API—— 以前一直用这个压JS,自从有了TBCompreor,就放

常用Firefox插件

  支付宝安全控件 和 旺旺协议 —— 网购专用,Firefox+浦发网银,无敌了—— 这个不用介绍了吧,附空帏的外部编辑器乱码修正版

o o o o o 

      —— 支持Cookie的查看和编辑—— 调试性能的,用起来比较麻烦,没试过—— Why Slow? YUI出品—— 把设计稿直接拖到Firefox里进行对比—— JS高亮,性能不是很理想—— 简化在Firefox里切换Fiddler的操作,感谢Taobao UED的空帏同学—— 把Html, Dom, JavaScript等手册放在侧栏里,可以自定义增加,快捷键Ctrl+F9。可以在找到更多的Package。—— 针对每个站点发送想要的HTTP Referer—— 看某个网站不爽,写个小脚本来优化下还是不错的—— 查看当前Http链接状态,类似IE下的HttpWatch—— 切换User-Agent,同时开发iphone和web版本的时候很方便—— 穿墙工具,配合使用很和谐

IE下的调试工具

—— 非常强悍的一款http流查看工具,默认支持IE,其他浏览器可以设置将

{Document}\\Scripts\\BrowserPAC.js设为代理进行使用。Firefox下可用上述”Fiddler 开关”进行快速切换。支持插件。

 —— 查看元素、禁用缓存、禁用CSS\\JS、Outline元素、查看生成的源码等功能,IE8自带了一个加强版的。+—— 调试JS用,虽然报错还是有误差,但是

我已经满足了。安装顺序是:Microsoft Script Debugger,Companion.JS,在”IE选项-高级”里取消禁用脚本调试。

o

o 多版本IE共存两种方案: IE7/8 +—— 大众型配置,可以基本满足日常需要。 IE6 +—— 在IE 6用户占绝对优势以及IE 6神奇bug

满天飞的时代,我还是推荐这种方案,因为只有神奇的原装IE 6,才能抵挡运营神奇的问题。另外如果还有其他机器可供支配的话,建议再装个IE 8 + IE Tester,因为IE 8下的Developer Toolbar还是有很大改进的,调试起来会方便一些。

o o o 以下三个软件相对不重要些:—— http流查看—— 可查看JS生成的源码—— 网速限制

参考手册

资料。

 苏昱的CSS中文手册和Dom中文手册XMLHTTP参考手册—— 整理的版本,包含了W3C手册以及其他有用的

 

   和() PHP手册

批处理工具

  —— 淘宝UED的JS/CSS压缩工具,详见—— png优化工具—— jpeg去冗余meta工具

IDE及其他工具

 

—— 灰常灰常好用,灰常灰常移动,见

Bookmarklet(右键另存)

   ——————,—— for IE 开发者社区及权威网站

     

       (Web 前端开发技术专题)—— 在线PPT分享,资源丰富—— Web开发人员的百科全书(香港,维基百科

推荐订阅的博客和网站(排名不分先后)

o

o

o

o

o

o 国内 内容聚合:,,, 团队Blog:淘宝,口碑,阿里巴巴国际站,阿里巴巴中文站,阿里巴巴中文站前端开发团队(方凳),阿里妈妈,支付宝,阿里软件,19楼,九天音乐,金蝶与友商网 个人Blog,这里列出的是原创并更新相对频繁的博客,如有遗漏,请告之:怿飞,手气不错,Realazy,old9(需穿墙术),沙滩凉鞋(空帏),射雕(玉伯),Aether,振之,嗷嗷,,,,,,,,,,,,,卢力,CSS森林(Ghost),Twinsen,Gulu77,Rlog,Dlog,子鼠,西风坊 …

 

浮动标签清除浮动方法小结 前端工程师国外 内容聚合:,,,,,,, 团队Blog:, 个人Blog:John Resig,PPK: QuirksMode,Douglas Crockford,Dean Edwards,,,,,,

推荐第8篇:产品包装开发工程师岗位职责

1.开发和设计产品的包装,保障产品能够按期上市。2.根据生产的实际需要,为产品生产提供技术支援服务,解决生产中出现的技术问题。3.完成产品包装材料的环保改良项目,以降低包装材料的采购成本。

推荐第9篇:微码开发工程师岗位职责

1.根据系统设计方案,进行网络处理器微码开发。2.负责微码的编程、单元测试及集成测试。3.参与相关设计方案和代码的评审。4.负责微码的维护、完善及升级。

推荐第10篇:开发设计工程师岗位职责

1.负责电动车整车造型设计。2.负责车架建模。3.负责电动车结构设计。4.负责为制造生产环节提供完备的设计图。

第11篇:PHP开发工程师岗位职责

1.负责PHP相关产品模块开发工作。2.负责公司业务系统开发、单元测试、系统对接工作。3.负责公司已有网络管理系统的二次开发。4.负责相关系统的设计与编码工作。5.负责研发产品技术文稍的编写工作。

第12篇:资料开发工程师岗位职责

通过参与产品研发的全过程如设计、开发、测试、开局等熟悉产品,基于IPD、CMM开发流程,采用国际信息开发的最新标准和工具,开发产品的安装、操作、维护手册等各类面向客户的技术资料和联机帮助。

第13篇:逻辑开发工程师岗位职责

1.从事逻辑代码编写、方案设计与测试。2.从事逻辑设计验证、验证语言工具开发与应用。3.从事逻辑技术的研究分析、开发与应用。

第14篇:模具开发工程师岗位职责

负责跟踪整个项目的进程,确保整个项目中的模具能够及时、合格地移交生产部。1.确保模具部门得到正确的客户信息。2.负责项目前期的产品失效分析和组织各加工部门进行评估、确认。3.负责解决模具加工中出现的紧急情况,及时准确地制定修模方案并确保完成。确保整个项目按照项目进度计划按时完成工作。4.负责产品的ECN全程跟踪,确保及时有效地完成。5.确保模具在计划时间内顺利转模、关模到工厂。6.协助生产工厂共同解决生产中的模具问题,确保生产顺利。7.确保与项目相关的机密信息得到有效的管控。8.确保客户及上级经理及时得到项目相关状态的报告。9.遵守本公司的环境文件和规定,维持工作环境的整洁。

第15篇:产品开发工程师岗位职责

1.负责按国家、行业规范要求开发新产品,按公司交给的开发任务安排工作进度。2.负责按规定要求编制计划投产的配方及生产工艺,生产工艺编写控制点明确,表述清楚,符合大生产条件。3.负责由自己开发配方的试生产,直到稳定正常生产,协助完成成品生产工艺文件编制。4.负责处理生产中有关产品的异常情况,负责与配方有关的原料检验中出现不合格的最终确认。5.负责及时提供配方相关的采购技术资料、原料检验标准、检验方法、产品内控标准。6.负责在试生产过程中对配料工人的技术培训。

第16篇:安全产品开发工程师岗位职责

1.负责安全服务产品的开发、包装等工作。2.负责根据市场需求情况和网通自身的优势,研究、开发、组织包装相关的安全产品和服务。3.负责制定相应产品的技术规范和产品说明书、相关流程和管理制度。4.负责产品和服务方面的技术支持、行业推广、销售培训等工作。

第17篇:微码开发工程师岗位职责

1.根据系统设计方案,进行网络处理器微码开发。2.负责微码的编程、单元测试及集成测试。3.参与相关设计方案和代码的评审。4.负责微码的维护、完善及升级。

第18篇:前端开发实习总结

多种多样的Web应用跟随互联网Web2。0时代的兴起不断出现,Web前端出现了翻天覆地的变化,今天小编给大家整理了前端开发实习总结,谢谢大家对小编的支持。

前端开发实习总结篇1

今天就简单聊聊上面的Struts+Spring+Hibernate吧。

Struts 代表:表示层;Spring代表:业务逻辑层;Hibernate则代表持久层。他们是目前在Java Web编程开发中用得最多的框架,其实这样区分是为了适应软件开发过程中各个分工部门之间保持一致性的需要。说得简单点就是大家都在一个模式下写代码,这样就能保证写出来的程序能被每一个人都能够读懂,而且有些基本的东西它可以自动帮你生成,不用你自己一个一个的敲了,达到了代码复用。这样保证可读性的同时也提高了开发效率,从而降低了成本。Struts这个框架其实就是Java MVC设计模式中(简称Model1与Model2)Model2的一个具体实现,Spring 则通过提供ICO(控制反转,也称依赖注入)实现了对对象甚至事务(如声明式事务)的集中管理,此外还引入了AOP(对向切面编程),当然也完全兼容其它框架。Hibernate吗,就是一个实现对象与关系映射的中间件,大家知道,现在的主流数据库还是关系型的,但编程却已经采用了面向对象的思想,如何让编程人员能像操作对象一样,操纵数据库里的数据呢?Hibernate就是这样一种框架。以前Java程序员与数据库打交道都是通过JDBC,还要写 SQL语句,不过Hibernate彻底改变了这一切,它在JDBC之上又作了一次封装,从而实现了不用写SQL语句就可以实现操作数据库。

值得提醒的是,这三个框架都是轻量级的,没有侵入性或者侵入性很低,不像EJB这样的重量级框架,它们都能最大限度的实现代码的可复用。

前端开发实习总结篇2

以前在校很少自己做程序,对软件工程更是一无所知。来到公司,开始接触\"大规模\"(其实现在看来实习的项目其实还是很小的)软件开发,一时真的有些迷茫。比起VSS,MVC,QA,CMMI,我对JAVA,JSP,XML的一窍不通根本不值一提。大家都不想输在\"起点\",所以都默契地在加班,这样一直持续了实习的两个月。

刚来的时候\"始业教育\"显得慢吞吞,我们还经常盘算去哪哪玩之类的。我和FLYSKY(20个新生里唯一一个南区的兄弟,软件学院的)还经常出去吃各种小吃,每到一处都尝尝本地的风味,这是他的习惯。之后开始的培训还不是很难过,JAVA,C++,ORACLE,老师们讲的很\"好\",可以说是非常好,好得我们没有几个人能听懂。大家开始发愁,我也是每天晚上都基本看书到10点。

\"我心说得亏哥们我还练过\",来之前的2月份我就自己买了一本THINKING IN JAVA,看懂看不懂怎么说也算是准备了一下JAVA,C++虽说没去上过课,但凭我的直觉我就一下看中这东西很有用,自己也看过一阵。至于ORACLE,虽然不了解,但毕竟因为佩服\"云飞扬\"的性格和敬业精神,咱SQL选修也不是白混的。专业倒还有点\"基础\",再加上咱这自学能力也不是吹的,基本维持。可等到后来的日语课就全迷糊了:本就没有语言天赋,再加上记忆严重欠缺,总是特别害怕去上日语课。不过特别喜欢那个老师说话的感觉,加上她一直对我都很好,所以还是很用心的学着。

随着培训的收尾,我们开始正式进入项目。从需求分析,概要设计到详细设计,我们一步一步的开始接触软件开发的每个细节。最受不了的就是每天都要记\"周报\",填写自己的劳动成果。因为这个我还被QA通报了好几次呢,真的很郁闷。其实现在我很感谢这种制度化的东西,某些情况下好习惯的养成是要靠强制来确保的。详细设计之后就是企盼已久的编码,我心想终于可以做点\"正事\"了。现在回头一看才知道,其实编码只占软件开发的整个过程劳动量的1/4左右,而且其他的环节也不是想象中的那么无足轻重。

编码我其实做的很不好,主要是因为需求分析阶段就没有认真仔细的理解需求和规格说明,加上编码时一个关键时段我回校和老同学叙旧。那阵项目经理(PM)就经常和我们说,\"有问题自己想办法,不要经常问我\"。PM其实是在叫我们自己酝酿,遇到难题只有\"憋\"一\"憋\"才能有真的收获。而我不在的那三天正好是大家技术/思路上的一个\"跃迁\",很多难题的解决方法都基本成熟,大家的编码也接近50%了,所以回来时我感觉已经掉队很多。再一个就是编码中期时机器出问题,环境搭不上了,这使我更加紧张和急躁,大大影响了我的士气。后来利用五一其间的加班我终于赶完了自己的模块,达到了第一个里程碑。其实从发现落后到加班赶完这段经历,对我来说也具有里程碑的意义。不仅考验了我自己的能力和心理素质,也证明了我对集体的责任感和合作意识。我可以叫别人来帮我做赶上进度,但那样我会错过自己学习的机会,以后再遇到难题我还是不行;我也可以硬着头皮导致项目延期,那样我以后的日子保证不好过,而且这么做也不符合我的性格。事实证明我顶住压力独立完成任务不管是对集体还是对我个人都是一件大好事。

第19篇:前端开发面试题(含答案)

XX公司

产品部-前端面试题-答案

产品部 Beijing

2015前端面试题2015-02 前端开发面试知识点大纲:

HTML&CSS:

对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:布局、盒子模型、选择器优先级及使用、HTML

5、CSS

3、移动端适应 JavaScript:

数据类型、面向对象、继承、闭包、插件、作用域、跨域、原型链、模块化、自定义事件、内存泄漏、事件机制、异步装载回调、模板引擎、Nodejs、JSON、ajax等。 其他:

HTTP、安全、正则、优化、重构、响应式、移动端、团队协作、可维护、SEO、UED、架构、职业生涯

作为一名前端工程师,无论工作年头长短都应该必须掌握的知识点:

1、DOM结构 —— 两个节点之间可能存在哪些关系以及如何在节点之间任意移动。

2、DOM操作

——如何添加、移除、移动、复制、创建和查找节点等。

3、事件

—— 如何使用事件,以及IE和标准DOM事件模型之间存在的差别。

4、XMLHttpRequest —— 这是什么、怎样完整地执行一次GET请求、怎样检测错误。

5、严格模式与混杂模式 —— 如何触发这两种模式,区分它们有何意义。

6、盒模型 —— 外边距、内边距和边框之间的关系,及IE8以下版本的浏览器中的盒模型

7、块级元素与行内元素 —— 怎么用CSS控制它们、以及如何合理的使用它们

8、浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。

9、HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。

10、JSON —— 作用、用途、设计结构。

2 / 28

2015前端面试题

2015-02 HTML

一、Doctype作用? 严格模式与混杂模式如何区分?它们有何意义? (1)、声明位于文档中的最前面,处于 标签之前。告知浏览器的解析器,用什么文档类型 规范来解析这个文档。

(2)、严格模式的排版和 JS 运作模式是

以该浏览器支持的最高标准运行。

(3)、在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。 (4)、DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。

二、行内元素有哪些?块级元素有哪些? 空(void)元素有那些?

(1)CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,比如div默认display属性值为“block”,成为“块级”元素;span默认display属性值为“inline”,是“行内”元素。

(2)行内元素有:a b span img input select strong(强调的语气) 块级元素有:div ul ol li dl dt dd h1 h2 h3 h4…p (3)知名的空元素: 鲜为人知的是:

三、link 和@import 的区别是?

(1)link属于XHTML标签,而@import是CSS提供的; (2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载; (3)import只在IE5以上才能识别,而link是XHTML标签,无兼容问题; (4)link方式的样式的权重 高于@import的权重.

四、浏览器的内核分别是什么? * IE浏览器的内核Trident、Mozilla的Gecko、Chrome的Blink(WebKit的分支)、Opera内核原为Presto,现为Blink;

3 / 28

2015前端面试题2015-02

五、常见兼容性问题?

* png24位的图片在iE6浏览器上出现背景,解决方案是做成PNG8.* 浏览器默认的margin和padding不同。解决方案是加一个全局的*{margin:0;padding:0;}来统一。 * IE6双边距bug:块属性标签float后,又有横行的margin情况下,在ie6显示margin比设置的大。 浮动ie产生的双倍距离 #box{ float:left; width:10px; margin:0 0 0 100px;}

这种情况之下IE会产生20px的距离,解决方案是在float的标签样式控制中加入 ——_display:inline;将其转化为行内属性。(_这个符号只有ie6会识别) 渐进识别的方式,从总体中逐渐排除局部。

首先,巧妙的使用“\\9”这一标记,将IE游览器从所有情况中分离出来。 接着,再次使用“+”将IE8和IE

7、IE6分离开来,这样IE8已经独立识别。

c

.bb{

background-color:#f1ee18;/*所有识别*/

.background-color:#00deff\\9; /*IE

6、

7、8识别*/

+background-color:#a200ff;/*IE

6、7识别*/

_background-color:#1e0bd1;/*IE6识别*/

}

* IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;Firefox下,只能使用getAttribute()获取自定义属性.解决方法:统一通过getAttribute()获取自定义属性.* IE下,even对象有x,y属性,但是没有pageX,pageY属性; Firefox下,event对象有pageX,pageY属性,但是没有x,y属性.* 解决方法:(条件注释)缺点是在IE浏览器下可能会增加额外的HTTP请求数。

4 / 28

2015前端面试题

2015-02 * Chrome 中文界面下默认会将小于 12px 的文本强制按照 12px 显示, 可通过加入 CSS 属性 -webkit-text-size-adjust: none; 解决.超链接访问过后hover样式就不出现了 被点击访问过的超链接样式不在具有hover和active了解决方法是改变CSS属性的排列顺序:L-V-H-A : a:link {} a:visited {} a:hover {} a:active {}

六、html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?

* HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加。 * 绘画 canvas

用于媒介回放的 video 和 audio 元素

本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;

seionStorage 的数据在浏览器关闭后自动删除

语意化更好的内容元素,比如 article、footer、header、nav、section

表单控件,calendar、date、time、email、url、search

新的技术webworker, websockt, Geolocation * 移除的元素-纯表现的元素:basefont,big,center,font, s,strike,tt,u; 对可用性产生负面影响的元素:frame,frameset,noframes;

七、支持HTML5新标签:

* IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签,浏览器支持新标签后,还需要添加标签默认的样式:

* 当然最好的方式是直接使用成熟的框架、使用最多的是html5shim框架 src=\"http://html5shim.googlecode.com/svn/trunk/html5.js\"

5 / 28

2015前端面试题2015-02

八、如何区分: DOCTYPE声明\\新增的结构元素\\功能元素,语义化的理解?

用正确的标签做正确的事情!

html语义化就是让页面的内容结构化,便于对浏览器、搜索引擎解析; 在没有样式CCS情况下也以一种文档格式显示,并且是容易阅读的。 搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于 SEO。 使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。

九、HTML5的离线储存?

localStorage

长期存储数据,浏览器关闭后数据不丢失; seionStorage 数据在浏览器关闭后自动删除。

十、(写)描述一段语义的html代码吧。

(HTML5中新增加的很多标签(如:、、和等)就是基于语义化设计原则)

标题 专注Web前端技术 十

一、iframe有那些缺点?

*iframe会阻塞主页面的Onload事件;

*iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载。 使用iframe之前需要考虑这两个缺点。如果需要使用iframe,最好是通过javascript 动态给iframe添加src属性值,这样可以可以绕开以上两个问题。

6 / 28

2015前端面试题

2015-02 十

二、请描述一下 cookies,seionStorage 和 localStorage 的区别?

cookie在浏览器和服务器间来回传递。 seionStorage和localStorage不会 seionStorage和localStorage的存储空间更大; seionStorage和localStorage有更多丰富易用的接口; seionStorage和localStorage各自独立的存储空间;

十三、如何实现浏览器内多个标签页之间的通信? (阿里) 调用localstorge、cookies等本地存储方式

十四、webSocket如何兼容低浏览器?(阿里) Adobe Flash Socket、ActiveX HTMLFile (IE)、基于 multipart 编码发送 XHR、7 / 28

基于长轮询的 XHR

2015前端面试题2015-02

CSS

一、介绍一下CSS的盒子模型?

(1)有两种, IE 盒子模型、标准 W3C 盒子模型;IE的content部分包含了 border 和 pading; (2)盒模型: 内容(content)、填充(padding)、边界(margin)、边框(border).

二、CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算? CSS3新增伪类有那些?

*

1.id选择器( # myid)

2.类选择器(.myclaname)

3.标签选择器(div, h1, p)

4.相邻选择器(h1 + p)

5.子选择器(ul >li)

6.后代选择器(li a)

7.通配符选择器( * )

8.属性选择器(a[rel = \"external\"])

9.伪类选择器(a: hover, li: nth - child)

*

可继承的样式: font-size font-family color, UL LI DL DD DT; *

不可继承的样式:border padding margin width height ; *

优先级就近原则,同权重情况下样式定义最近者为准; *

载入样式以最后载入的定位为准;

8 / 28

2015前端面试题

2015-02 优先级为:

!important > id >cla >tag

important 比 内联优先级高

三、CSS3新增伪类举例:

p:first-of-type 选择属于其父元素的首个

元素的每个

元素。 p:last-of-type 选择属于其父元素的最后

元素的每个

元素。 p:only-of-type 选择属于其父元素唯一的

元素的每个

元素。 p:only-child

选择属于其父元素的唯一子元素的每个

元素。 p:nth-child(2) 选择属于其父元素的第二个子元素的每个

元素。 :enabled :disabled 控制表单控件的禁用状态。 :checked

单选框或复选框被选中。

四、如何居中div?如何居中一个浮动元素?

给div设置一个宽度,然后添加margin:0 auto属性 div{width:200px; margin:0 auto; }

五、居中一个浮动元素

确定容器的宽高 宽500 高 300 的层

设置层的外边距

.div { Width:500px ; height:300px;//高度可以不设

Margin: -150px 0 0 -250px;

position:relative;相对定位

background-color:pink;//方便看效果

9 / 28

2015前端面试题2015-02

left:50%; top:50%;}

六、列出display的值,说明他们的作用。position的值, relative和absolute定位原点是?

1.block 象块类型元素一样显示。

none 缺省值。象行内元素类型一样显示。

inline-block 象行内元素一样显示,但其内容象块类型元素一样显示。

list-item 象块类型元素一样显示,并添加样式列表标记。

2.*absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。 *fixed (老IE不支持)生成绝对定位的元素,相对于浏览器窗口进行定位。 *relative生成相对定位的元素,相对于其正常位置进行定位。 * static 默认值。没有定位,元素出现在正常的流中 *(忽略 top, bottom, left, right z-index 声明) * inherit 规定从父元素继承 position 属性的值。

七、CSS3有哪些新特性?

CSS3实现圆角(border-radius:8px),阴影(box-shadow:10px),

对文字加特效(text-shadow、),线性渐变(gradient),旋转(transform)

transform:rotate(9deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);//旋转,缩放,定位,倾斜

增加了更多的CSS选择器

多背景 rgba

八、

九、一个满屏 品 字布局 如何设计? 经常遇到的CSS的兼容性有哪些?原因,解决方法是什么?

10 / 28

2015前端面试题

2015-02

十、为什么要初始化CSS样式。

因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异。

当然,初始化样式会对SEO有一定的影响,但鱼和熊掌不可兼得,但力求影响最小的情况下初始化。 *最简单的初始化方法就是: * {padding: 0; margin: 0;} (不建议) 淘宝的样式初始化:

body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td { margin:0; padding:0; } body, button, input, select, textarea { font:12px/1.5tahoma, arial, \\5b8b\\4f53; } h1, h2, h3, h4, h5, h6{ font-size:100%; } addre, cite, dfn, em, var { font-style:normal; } code, kbd, pre, samp { font-family:couriernew, courier, monospace; } small{ font-size:12px; } ul, ol { list-style:none; } a { text-decoration:none; } a:hover { text-decoration:underline; } sup { vertical-align:text-top; } sub{ vertical-align:text-bottom; } legend { color:#000; } fieldset, img { border:0; } button, input, select, textarea { font-size:100%; } table { border-collapse:collapse; border-spacing:0; }

11 / 28

2015前端面试题2015-02 十

一、absolute的containing block计算方式跟正常流有什么不同?

十二、position跟display、margin collapse、overflow、float这些特性相互叠加后会怎么样?

十三、对BFC规范的理解?

(W3C CSS 2.1 规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关 系和相互作用。)

十四、c定义的权重

以下是权重的规则:标签的权重为1,cla的权重为10,id的权重为100,以下例子是演示各种定义的权重值: /*权重为1*/ div{} /*权重为10*/ .cla1{} /*权重为100*/ #id1{} /*权重为100+1=101*/ #id1 div{} /*权重为10+1=11*/ .cla1 div{} /*权重为10+10+1=21*/ .cla1 .cla2 div{}

如果权重相同,则最后定义的样式会起作用,但是应该避免这种情况出现

12 / 28

2015前端面试题

2015-02 十

五、解释下浮动和它的工作原理?清除浮动的技巧

六、用过媒体查询,针对移动端的布局吗?

七、使用 CSS 预处理器吗?喜欢那个?

SASS

十八、如果需要手动写动画,你认为最小时间间隔是多久,为什么?(阿里)

多数显示器默认频率是60Hz,即1秒刷新60次,所以理论上最小间隔为1/60*1000ms = 16.7ms 十

九、display:inline-block 什么时候会显示间隙?(携程) 移除空格、使用margin负值、使用font-size:0、letter-spacing、word-spacing

13 / 28

2015前端面试题2015-02

JavaScript

一、

二、JavaScript原型,原型链 ? 有什么特点? eval是做什么的?

它的功能是把对应的字符串解析成JS代码并运行;应该避免使用eval,不安全,非常耗性能(2次,一次解析成js语句,一次执行)。

三、

四、null,undefined 的区别? 写一个通用的事件侦听器函数。

// event(事件)工具集,来源:github.com/markyun

markyun.Event = {

// 页面加载完成后

readyEvent : function(fn) {

if (fn==null) {

fn=document;

}

var oldonload = window.onload;

if (typeof window.onload != \'function\') {

window.onload = fn;

} else {

window.onload = function() {

14 / 28

2015前端面试题

2015-02

oldonload();

fn();

};

}

},

// 视能力分别使用dom0||dom2||IE方式 来绑定事件

// 参数: 操作的元素,事件名称 ,事件处理程序

addEvent : function(element, type, handler) {

if (element.addEventListener) {

//事件类型、需要执行的函数、是否捕捉

element.addEventListener(type, handler, false);

} else if (element.attachEvent) {

element.attachEvent(\'on\' + type, function() {

handler.call(element);

});

} else {

element[\'on\' + type] = handler;

}

},

// 移除事件

removeEvent : function(element, type, handler) {

if (element.removeEnentListener) {

15 / 28

2015前端面试题2015-02

element.removeEnentListener(type, handler, false);

} else if (element.datachEvent) {

element.detachEvent(\'on\' + type, handler);

} else {

element[\'on\' + type] = null;

}

},

// 阻止事件 (主要是事件冒泡,因为IE不支持事件捕获)

stopPropagation : function(ev) {

if (ev.stopPropagation) {

ev.stopPropagation();

} else {

ev.cancelBubble = true;

}

},

// 取消事件的默认行为

preventDefault : function(event) {

if (event.preventDefault) {

event.preventDefault();

} else {

event.returnValue = false;

}

16 / 28

2015前端面试题

2015-02

},

// 获取事件目标

getTarget : function(event) {

return event.target || event.srcElement;

},

// 获取event对象的引用,取到事件的所有信息,确保随时能使用event;

getEvent : function(e) {

var ev = e || window.event;

if (!ev) {

var c = this.getEvent.caller;

while (c) {

ev = c.arguments[0];

if (ev && Event == ev.constructor) {

break;

}

c = c.caller;

}

}

return ev;

}

};

五、Node.js的适用场景?

17 / 28

2015前端面试题2015-02 高并发、聊天、实时消息推送

六、介绍js的基本数据类型。

number,string,boolean,object,undefined

七、Javascript如何实现继承?

通过原型和构造器

八、[\"1\", \"2\", \"3\"].map(parseInt) 答案是多少?

[1, NaN, NaN] 因为 parseInt 需要两个参数 (val, radix),其中 radix 表示解析时用的基数。map 传了 3 个 (element, index, array),对应的 radix 不合法导致解析失败。

九、如何创建一个对象? (画出此对象的内存图)

function Person(name, age) {

this.name = name;

this.age = age;

this.sing = function() { alert(this.name) }

}

十、谈谈This对象的理解。

this是js的一个关键字,随着函数使用场合不同,this的值会发生变化。但是有一个总原则,那就是this指的是调用函数的那个对象。this一般情况下:是全局对象Global。 作为方法调用,那么this就是指这个对象

十一、事件是?IE与火狐的事件机制有什么区别? 如何阻止冒泡?

1.我们在网页中的某个操作(有的操作对应多个事件)。例如:当我们点击一个按钮就会产生一个事件。是可以被 JavaScript 侦测到的行为。

2.事件处理机制:IE是事件冒泡、火狐是 事件捕获;

18 / 28

2015前端面试题

2015-02 3.ev.stopPropagation(); 十

二、什么是闭包(closure),为什么要用它?

执行say667()后,say667()闭包内部变量会存在,而闭包内部函数的内部变量不会存在.使得Javascript的垃圾回收机制GC不会收回say667()所占用的资源,因为say667()的内部函数的执行需要依赖say667()中的变量。这是对闭包作用的非常直白的描述.

function say667() {

// Local variable that ends up within closure

var num = 666;

var sayAlert = function() { alert(num); }

num++;

return sayAlert; } var sayAlert = say667(); sayAlert()//执行结果应该弹出的667

十三、\"use strict\";是什么意思 ? 使用它的好处和坏处分别是什么? 十

四、如何判断一个对象是否属于某个类?

使用instanceof (待完善)

if(a instanceof Person){

alert(\'yes\');

} 十

五、new操作符具体干了什么呢?

19 / 28

2015前端面试题2015-02

1、创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。

2、属性和方法被加入到 this 引用的对象中。

3、新创建的对象由 this 所引用,并且最后隐式的返回 this 。

var obj = {}; obj.__proto__ = Base.prototype; Base.call(obj);

十六、Javascript中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?

hasOwnProperty 十

七、JSON 的了解?

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 它是基于JavaScript的一个子集。数据格式简单, 易于读写, 占用带宽小 {\'age\':\'12\', \'name\':\'back\'} 十

八、js延迟加载的方式有哪些?

defer和async、动态创建DOM方式(用得最多)、按需异步载入js 十

九、ajax 是什么? 二

十、同步和异步的区别? 二十

一、如何解决跨域问题? jsonp、iframe、window.name、window.postMeage、服务器上设置代理页面

二十二、模块化怎么做?立即执行函数,不暴露私有成员

20 / 28

2015前端面试题

2015-02

var module1 = (function(){

var _count = 0;

var m1 = function(){

//...

};

var m2 = function(){

//...

};

return {

m1 : m1,

m2 : m2

};

})();

二十三、AMD(Modules/Asynchronous-Definition)、CMD(Common Module Definition)规范区别?

AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。 CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。

对于依赖的模块,AMD 是提前执行,CMD 是延迟执行。不过 RequireJS 从 2.0 开始,也改成可以延迟执行(根据写法不同,处理方式不同)。CMD 推崇 as lazy as poible. CMD 推崇依赖就近,AMD 推崇依赖前置

21 / 28

2015前端面试题2015-02 二十

四、异步加载的方式有哪些?

(1) defer,只支持IE

(2) async:

(3) 创建script,插入到DOM中,加载完毕后callBack 二十

五、documen.write和 innerHTML的区别

document.write只能重绘整个页面 innerHTML可以重绘页面的一部分

二十六、.call() 和 .apply() 的区别?

例子中用 add 来替换 sub,add.call(sub,3,1) == add(3,1) ,所以运行结果为:alert(4);

注意:js 中的函数其实是对象,函数名是对 Function 对象的引用。

function add(a,b)

{

alert(a+b);

}

function sub(a,b)

{

alert(a-b);

}

add.call(sub,3,1);

二十七、Jquery与jQuery UI 有啥区别?

*jQuery是一个js库,主要提供的功能是选择器,属性修改和事件绑定等等。

22 / 28

2015前端面试题

2015-02 *jQuery UI则是在jQuery的基础上,利用jQuery的扩展性,设计的插件。

提供了一些常用的界面元素,诸如对话框、拖动行为、改变大小行为等等

二十八、JQuery的源码看过吗?能不能简单说一下它的实现原理? 二十

九、jquery 中如何将数组转化为json字符串,然后再转化回来?

jQuery中没有提供这个功能,所以你需要先编写两个jQuery的扩展:

$.fn.stringifyArray = function(array) {

return JSON.stringify(array)

}

$.fn.parseArray = function(array) {

return JSON.parse(array)

}

然后调用:

$(\"\").stringifyArray(array) 三

十、针对 jQuery 的优化方法?

*基于Cla的选择性的性能相对于Id选择器开销很大,因为需遍历所有DOM元素。 *频繁操作的DOM,先缓存起来再操作。用Jquery的链式调用更好。

比如:var str=$(\"a\").attr(\"href\"); *for (var i = size; i

for (var i = size, length = arr.length; i

23 / 28

2015前端面试题2015-02 三十

一、JavaScript中的作用域与变量声明提升? 三十

二、如何编写高性能的Javascript? 三十

三、那些操作会造成内存泄漏?

内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。

垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。 setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。

闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)

三十

四、JQuery一个对象可以同时绑定多个事件,这是如何实现的? 三十

五、如何判断当前脚本运行在浏览器还是node环境中?(阿里)

通过判断Global对象是否为window,如果不为window,当前脚本没有运行在浏览器中

三十

六、对Node的优点和缺点提出了自己的看法?

*(优点)因为Node是基于事件驱动和无阻塞的,所以非常适合处理并发请求,

因此构建在Node上的代理服务器相比其他技术实现(如Ruby)的服务器表现要好得多。

此外,与Node代理服务器交互的客户端代码是由javascript语言编写的,

因此客户端和服务器端都用同一种语言编写,这是非常美妙的事情。

*(缺点)Node是一个相对新的开源项目,所以不太稳定,它总是一直在变,

而且缺少足够多的第三方库支持。看起来,就像是Ruby/Rails当年的样子。

24 / 28

2015前端面试题

2015-02

其它问题

一、你有哪些性能优化的方法?

(看雅虎14条性能优化原则)。

(1) 减少http请求次数:CSS Sprites, JS、CSS源码压缩、图片大小控制合适;网页Gzip,CDN托管,data缓存 ,图片服务器。

(2) 前端模板 JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数

(3) 用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能。

(4) 当需要设置的样式很多时设置claName而不是直接操作style。

(5) 少用全局变量、缓存DOM节点查找的结果。减少IO读取操作。

(6) 避免使用CSS Expreion(c表达式)又称Dynamic properties(动态属性)。

(7) 图片预加载,将样式表放在顶部,将脚本放在底部

加上时间戳。

(8) 避免在页面的主体布局中使用table,table要等其中的内容完全下载之后才会显示出来,显示比div+c布局慢。

二、http状态码有那些?分别代表是什么意思?

100-199 用于指定客户端应相应的某些动作。 200-299 用于表示请求成功。

300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。 400-499 用于指出客户端的错误。

400

语义有误,当前请求无法被服务器理解。 401

当前请求需要用户验证

25 / 28

2015前端面试题2015-02 403 服务器已经理解请求,但是拒绝执行它。 500-599 用于支持服务器错误。 503 – 服务不可用

三、一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?(流程说的越详细越好)

查找浏览器缓存

DNS解析、查找该域名对应的IP地址、重定向(301)、发出第二个GET请求

进行HTTP协议会话

客户端发送报头(请求报头)

服务器回馈报头(响应报头)

html文档开始下载

文档树建立,根据标记请求所需指定MIME类型的文件

文件显示

[

浏览器这边做的工作大致分为以下几步:

加载:根据请求的URL进行域名解析,向服务器发起请求,接收文件(HTML、JS、CSS、图象等)。

解析:对加载到的资源(HTML、JS、CSS等)进行语法解析,建议相应的内部数据结构(比如HTML的DOM树,JS的(对象)属性表,CSS的样式规则等等)

}

四、平时如何管理你的项目?

先期团队必须确定好全局样式(globe.c),编码模式(utf-8) 等;

编写习惯必须一致(例如都是采用继承式的写法,单样式都写成一行);

26 / 28

2015前端面试题

2015-02

标注样式编写人,各模块都及时标注(标注关键样式调用的地方);

页面进行标注(例如 页面 模块 开始和结束);

CSS跟HTML 分文件夹并行存放,命名都得统一(例如style.c);

JS 分文件夹存放 命名以该JS功能为准的英文翻译。

图片采用整合的 images.png png8 格式文件使用 尽量整合在一起使用方便将来的管理

五、说说最近最流行的一些东西吧?常去哪些网站?

Node.js、Mongodb、npm、MVVM、MEAN、three.js

六、移动端(Android IOS)怎么做好用户体验?

清晰的视觉纵线、信息的分组、极致的减法、

利用选择代替输入、标签及文字的排布方式、

依靠明文确认密码、合理的键盘利用、

七、想问公司的问题?

目前关注哪些最新的Web前端技术(未来的发展方向)?

前端团队如何工作的(实现一个产品的流程)?

公司的薪资结构是什么样子的?

八、优质网站推荐

极客标签: http://www.daodoc.com/ 码农周刊: http://weekly.manong.io/iues/ 前端周刊: http://www.daodoc.com/iues 极客头条: http://geek.csdn.net/ Startup News:http://news.dbanotes.net/

27 / 28

2015前端面试题2015-02 Hacker News: https://news.ycombinator.com/news InfoQ: http://www.daodoc.com/ w3cplus: http://www.daodoc.com/ Stack Overflow: http://stackoverflow.com/ Atp: http://atp-posts.b0.upaiyun.com/posts/

28 / 28

第20篇:WEB前端开发经验总结

WEB前端开发经验总结

发布时间:2009-04-20 09:05:33来源:作者:shengman点击:21015

这里跟大家谈谈个人对WEB前端开发的一些经验(当然都是个人的一些理解,有什么地方说的欠妥或不对的地方还请包含和指正),这里我就从WEB标准开始吧。

WEB标准是什么?

说是WEB标准,不过我这里主要是对XHTML1.1 和 CSS2.1的一些经验总结。因为WEB含盖的内容实在是太多了,“WEB标准”是一系列标准的总称,包括HTML4.0、XHTML1.1、CSS2.

1、XML1.0、RSS2.0、ECMAScript1.1、DOM1.0等等。所以这里要跟大家指出来一下,WEB标准不是我们所说的DIV+CSS。 刚刚上面提到了――DIV+CSS,这里要说明下,这样说其实是不正确的。DIV+CSS准确的说法(个人的理解)应该是:采用W3C推荐的WEB标准中的XHTML1.1结合CSS2.0样式表制作页面的方法,DIV应该指的是XHTML标签,而CSS显示是指的CSS样式表了。

采用WEB标准开发的好处

那么W3C为什么会推荐这样的页面制作方法呢?下面我们就简单的看看采用WEB标准开发(个人理解的)相对以前TABLE布局的优势有哪些?

1、节约运营成本

看看我们的WEB标准制作方法是如何做到的?

采用WEB标准制作,我们可以做到表现很形式的分离,我们用XHTML来表现(数据),用CSS来控制(页面元素呈现的)形式。写的好的页面,XHTML代码中基本上都是用户要看的数据,还其他修饰性的东西,全部由我们的CSS来控制。这样一来我们的(XHTML)页面的体积就大大减小了,这样你在带宽上的费用就会大家降低了,这个怎么降低的,你可以想象一下,YAHOO的首页小1K,100W个人一起访问,那么带宽节约了多少?而且可以更充分的利用带宽。

而我们的CSS控制了,所有的页面元素的样式,现在想改网站的整体风格,你只需要花几分钟修改一下一个CSS文件,就可以轻松搞定了。维护的成本也下来了,省了不少钱了吧?还有,你开这个页面的速度会快很多啊,一个让你等半分钟的页面,除非里面的信息对你很有用,不然我们大家基本都没有太多的时间去用来等待的。

2、对用户友好更友好,且有机会获得更多的用户

现在来说说用户友好。首先我想把我们的用户来分下类。

第一类:普通用户(每个访问我们网站的人);

第二类:搜索引擎;

采用WEB标准开发的页面,结构清晰,页面体积小,浏览器兼容性好。普通用户访问的时候,页面打开速度快,而且不管用户使用那种浏览器,都能够正常访问(显示)页面,且页面的结构清晰,要找的数据可以很方便的浏览到。

而对搜索引擎来说,一个好的采用WEB标准开发的页面,都是做过SEO优化的,它访问起来很友好,很容易理解你的页面中哪里是标题(H1~H6标签),哪里是段落(p标签),哪里是段落里要强调的内容(strong标签) 等,它可以很容易的分析出来。而一个SEO好的站点,大家都知道,被搜索引擎收录的机会更多,这个也意味着您的网站会被更多的普通用户访问到,给你的站点带来更多的用户。

一个能帮我们省下大笔费用,提高工作效率。同时又能够提高页面浏览速度,对用户友好,甚至能够不花钱宣传,就能给你带来更多用户的技术。你说你会不会去使用它?这个也正式我们的W3C推荐使用WEB标准开放网站的原因啊。而这个技术也得到了我们广大用户的认可,所以您现在需要学习WEB标准啊。 温习完了基础课程,现在正式开始讲XHTML和CSS的技巧了。

合理的布局

有朋友会开始问了,怎么一开始就开始讲合理的布局了呢?前面我们提到了一些知识点――“结构清晰、SEO优化、页面体积小、XHTML代码中基本上都是用户要看的数据”。这些东西,都是我们做了合理布局的结果。而且我个人觉得,我们采用WEB标准制作的一切都是从这个知识点开始的,所以我这里就先来说这个话题。

那么大家又会开始问,怎样的一个页面,才算是合理的布局的呢?这个问题问题问得好,也是我们大家刚开始学用WEB标准的问得最多的问题之一,我也曾经常被这个问题所困扰,这里就说说我对合理布局的一些理解。

在开始讲合理布局的页面要达到的要素前,我们还是用个实例来讲解会更直观些。先来看看这个图片: 不错,这个是一个文章详细页,没有左右两栏布局,不过这里我重点要讲的是合理的布局,在稍后的文章中我会详细的介绍浮动元素。好,回到刚才的话题,大家看到了这个页面了。

我这里先把代码写给大家看看(省略了部分代码):

domain来源:domain.com发布时间:2008年4月28日

代码篇

之前整理发表了《XMLHTTPRequest的属性和方法简介》,它Ajax要使用的核心的技术之一,现在就来实际运用它。这个Ajax标签导航,是我很久前就写的一个脚本,很实用的(还被很多网站收录了哦),现在拿它来做实例讲解吧!当然个人能力有限,有什么不对的地方还请多包含!

效果大家看到了,核心功能有:

1、将当前选中标签以特殊的样式显示

2、将异步加载的页面信息显示到指定的DOM节点中

我们来看看处理脚本的代码吧:

程序代码:ajaxtab.js

// 判断是否支持ActiveX

var useActiveX=(typeof ActiveXObject != \"undefined\");

// 判断是否支持DOM

var useDom=document.implementation && document.implementation.createDocument;

// 判断是否支持XMLHttpRequest对象

var useXmlHttp=(typeof XMLHttpRequest != \"undefined\");

// XMLHttpRequest对象版本

var ARR_XMLHTTP_VERS = [\"MSXML2.XmlHttp.6.0\",\"MSXML2.XmlHttp.3.0\"];

// DOM对象版本

var ARR_DOM_VERS = [\"MSXML2.DOMDocument.6.0\",\"MSXML2.DOMDocument.3.0\"]; /* =============

* 函数名称:$(i)

* 参数说明:i超链接

- 标签间的分割线

我罗列的这些东西,相信大家开始看出了些头绪了,呵呵,不过别急!在我们看处理的脚本之前,先让我们来看看导航标签的样式,主要是看看我们对分割线的处理(一点CSS处理的技巧)。

本来想偷个懒,让大家看我上边说的那篇文章,想想也就是Ctrl+C&Ctrl+V,都贴出来吧!呵呵!!!

不过还没有完,最后要说的就是innerHTML这个特性,这里我们还要感谢微软啊,innerHTML就是它的专利,我们就是用它来改变指定DOM内的HTML字符串的,而不用刷新页面。详细的信息大家还是google

一下吧,我也要休息下啊!!喝口茶先!!^-^!

以上讲了这么多,我们最后来看看,我们这个ajax标签导航都用到了那些技术吧:

XHTML

CSS

Javascript

DOM

XMLHttpRequest对象

innerHTML

还有XML,我们这个例子没有涉及到。东西虽小,包含的(web前端开发)知识可是都用到了啊,我把我会的点东西都端出来了(要失业了),呵呵!

当然我很喜欢跟大家多交流,以后有时间,我们在来谈谈CSS的HACKS技巧,Javascript DOM编程等等的,今天就收工了,谢谢捧场先!!!

Copyright © 2007-2008

href=\"domain.comhttp://\">domain.com, All rights reserved.Powered By: domain

《前端开发工程师岗位职责.doc》
前端开发工程师岗位职责
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

相关推荐

公司工作总结企业文化建设章程规章制度公司文案公司简介岗位职责
下载全文