最近ajax在国内开始流行,很多程序员赶上了这个潮流,不幸的是,在这个大浪中,太多人拘泥于j2ee或者php等的经验,对服务器端做的事情转到客户端的javascript有热情,对css分离内容与表现不太有热情,一般的也就是知道该这么做,在论坛上可以看到很多程序员用ajax也只是在旧的table布局下套用了一点ajax的元素。这样没有充分发挥基于web标准开发的威力,只能算是旧瓶勾兑新酒。另外一种极端的做法是,单一页面网页程序,所有的元素都通过javascript生成。这样做可以避免一些无谓的css bug,最终的程序在装载阶段就比较缓慢,用到中间也容易变慢,内存泄漏,或者装载的组件过多,做得不太好的容易出现浏览器假死,尤其在网速慢或者网速不稳定的客户端上。
我一直都很反感一些javascript框架做一些布局的类库。web页面制作,表现,内容,行为三层的分离是最基本的原则,用javascript做布局是越界,该css做的事情由javascript做了,中间平白无故多了一层,浪费。目前而言,这些布局除了在模仿可缩放,可调整尺寸的地方有些必要以外,其他都不太值得使用。很多人对css避而远之,可能是因为在布局问题上受到的挫折太多。从前的解决办法是用一些hack手法,或者针对不同的浏览器多写几套css文件。现在css已经有很多试验性的例子,从menu,tab,tree等的生成,到grid布局的一些尝试,如google和yahoo都有这方面的css解决方案供参考。很多问题也能从http://www.positioniseverything.net/上找到解决办法,cssplayer这样的网站也能帮助我们找到很多借鉴的例子,从原则上说,无论是程序员还是美工,用css做一个拽一点的网站都不存在很大的障碍。当然,这个过程中肯定会遇到一些诡异的,一时无法解决的问题,但是网页有很多方法美化,总有绕过去的办法。用grid布局可能容易背上多div,多class症的罪名,不过比起table布局,多div症还是有可取之处。div所花的标签还是要少很多,内容和表现还是能够很好的分离,唯一的缺点是布局的无意义标签多了那么一点点,这一点点比起那些bug来说,还是少很多了。从开发效率上来讲,我认为是非常值得,缺点可能是如果刚开始就用这种手法,习惯之后就成了依赖,忘了css本身的魅力。
ajax和css紧密相连的一个重要原因在于,css可以帮助web页面减肥,减小dom树。很多ajax程序都是对dom树操纵来操纵去,尽管ext这样的框架对dom中的element获取做了优化,一次存取后,第二次他就记住了,Ajax在短小精悍的dom树比臃肿的dom树中速度要快很多。举个最近工作中遇到的例子,刚开始试用ajax做一个较复杂的页面,类似联众游戏的房间页面。房间的桌子列表,房间的人员列表,聊天室这三个是ext类库生成的,外面有些装饰元素,以前是table布局,有10来张小碎图。就外面一点点修饰页面,table套table,套的不厌其烦。估计大家这种页面都见多了。html页面程序不到4k,因为毕竟原来的页面程序员还是懂一点css,把很多table的修饰拿到外面的css文件中了。在本地一测试,平均装载时间稳定在8秒左右。当然,ext还用的debug模式,稍微优化了一下,平均6秒左右。我看不惯表格套表格的多余,动手整了整外面的修饰,简化为那么5个div,所有的碎图都变成背景图,把4个切碎的图合并成一个,页面之内再也没有<img>标签了(一个链接按钮)除外。html文件简化到900字节左右,从文件大小来看,毫无疑问,不值。但页面装载速度降为2s左右。当然,这个页面的装载速度还有提升的空间,我认为可以接受的速度是局域网1秒左右。从firebug的显示来看,html文件的网络传输速度没有差别,局域网内基本看不出来,但是在页面装载的时候,ajax程序开始获取后台数据,生成element组件的时候,速度差距就出来了。动态生成几十个element,累加起来就不少了。
做web开发,需要稍微复杂一点的控件的时候就开始犯难了。html本身提供的元素有限,复杂的没有,如spinner这种东西基本只能用javascript结合css做,可以找到一些现成的,当然一些javascript框架提供了一些不错的组件。目前我还用得比较少,略微看了些,感觉不太爽的地方是很多javascript鼓励一种不好的习惯,在元素中直接声明style,而不是分配类名。其实这些元素一般都附带一些基本的css文件,但是这些js框架对css文件的说明不太够,很多时候,改动组件的外观应该比较方便,最好不必在javascript中改,直接修改css比较省事,也符合分工的原则。其实,这也是jsf让人诟病的地方。在所见即所得上,现有的js在一些特定的工具上还能实现,jsf在netbeans上也做的不错,可惜的是缺乏一个整合的工具,让整个web页面能够在良好的分工协作中所见即所得,这是非常影响效率的一个问题。在复杂控件上,能够零散的找到一些框架使用,但是在修改这些控件的外观上,缺乏良好的对css的支持。这是目前比较头疼的问题。国内有不少单一页面的ajax应用,好些看上去就知道用了某个js框架,但是基本没怎么改css,美术效果很不咋地。
web2.0程序开发,还在摸索中,目前还没有看到很好的解决css和javascript分工协作的问题,只能寄希望于开发人员自身对此的认识了。
分享到:
相关推荐
这种分工协作可以提高开发效率,同时让每个部分都能专注于其擅长的领域。 在这个"html css javascript教学课件"中,你将学习到如何用这些技术来创建功能丰富、视觉吸引人的网页。通过实践和深入理解,你可以掌握...
《HTML+CSS+JavaScript网页制作(Web前端开发)(第3版)》是一门旨在教授Web前端开发基础知识的课程,涵盖了HTML5、CSS和JavaScript的核心概念和技术。课程内容详细且实用,旨在帮助学生掌握网页设计和开发的基本技能。...
内容概要 本项目聚焦于一个功能完备的手机商城页面设计与实现,采用HTML、CSS和JavaScript作为核心技术栈。页面不仅外观现代、交互...增强团队合作能力和项目管理技巧,通过分工协作完成项目开发 仅用作学习参考使用
4. **团队合作**:如果是小组项目,则可以锻炼团队协作的能力,学会如何有效沟通和分工合作。 综上所述,该项目不仅能够帮助学生巩固理论知识,还能够培养学生的实践能力和创新能力,具有非常重要的教育意义。
同时,这也是一种团队协作的锻炼,因为通常一个网站会涉及到多人分工合作。 5. 编号100010186: 这可能是一个课程代码或项目编号,用于区分不同的课程设计任务。在实际的学习环境中,每个项目都有独特的标识符以便...
在IT项目开发中,团队协作至关重要,而小组分工与贡献率是衡量团队成员工作量和效果的重要指标。从提供的信息来看,这个小组的项目涵盖了多个关键领域,包括服务器开发、需求分析、前端实现、UI设计、数据库管理和...
CSS(层叠样式表)、HTML...了解了这些基础知识点之后,我们可以更好地理解前端开发中技术的分工和协作方式。无论是在团队合作还是个人开发项目时,都需要合理地运用HTML、CSS和Javascript来实现一个高质量的网页产品。
这样的分工协作提高了开发效率,也方便了后期的维护和更新。 在实际应用中,这款模板可能还包含了JavaScript或者jQuery等脚本语言,用于实现动态效果,增强用户的交互体验。例如,滑动导航、悬停效果、滚动动画等。...
3. **便于分工合作**:设计师专注于页面设计,开发者专注于功能实现,提高团队协作效率。 4. **提高可访问性**:良好的CSS设计可以提升网页对于辅助技术的兼容性,增强可访问性。 5. **提供更多外观控制手段**:CSS...
郭森负责前端场景设计和功能点的实现,这通常涉及到UI/UX设计、交互逻辑以及前端框架的应用,如HTML、CSS、JavaScript等。李星则专注于后台搭建和后台处理实现,这可能包括服务器端编程(如Java、Python或Node.js)...
实习的目的是为了深入了解软件开发的模式,尤其是敏捷开发的流程,同时掌握HTML5、CSS和JavaScript等核心技术。 实习背景部分提到了实习的主要目标,其中包括理解软件开发的多种模式,如软件生命周期中的瀑布模型、...
JavaScript与HTML和CSS结合,可以创建丰富的用户体验。 4. **逻辑层**:这是后端开发的一个概念,涉及到处理用户请求、业务逻辑和数据操作。模块1至模块5分别对应不同的功能,如社区模块、用户模块、策略研究、实盘...
CSS是一种用于定义Web页面外观和布局的语言,与HTML和JavaScript并列为Web开发的三大基石之一。它的核心优势在于能够将页面的内容与表现分离,这意味着开发者可以独立地管理页面的视觉效果而不影响其结构。具体而言...
- 实践部分:学生被分组,按照敏捷开发流程进行工作,包括每日站立会议,共同观看实习实例视频并分工协作,最后提交成果接受教师评估。 【实习内容】 2.1 实习过程: - 在这一阶段,学生可能会详细描述每周的主要...
这种分工协作的方式,使得开发者能够快速地构建出功能丰富、用户体验优秀的Web应用。 在实际项目中,开发者可以根据需求选择合适的技术栈,例如,如果需要一个轻量级的前端,可以侧重于HTML、CSS和JavaScript;如果...
在实践中,学生通过观看视频自学HTML5、CSS和JavaScript,并在分组项目中应用这些技能,参与敏捷开发流程,如每日站立会议,分工合作完成任务,并提交成果接受评估。 【实习内容】 2.1 实习过程 在实习过程中,...
- 后续时间可能分配给项目实践,如组建小组,分工协作,根据敏捷流程进行每日站立会议,讨论进度,解决问题。 2.2 实习内容 - HTML5学习:包括新的元素如、、等,以及离线存储(Application Cache)、拖放功能、...
在本文档中,我们讨论了如何利用MVC模式来分离Web视图(View)和逻辑代码(Controller与Model),以提高开发效率和协作效果。 首先,MVC模式的基本概念是: 1. **Model(模型)**:负责处理业务逻辑和数据管理,...
前端工程师需要关注标签的语义化、CSS布局、浏览器兼容性、CSS Sprites、网格布局等,同时还要理解SEO、JavaScript库和框架如jQuery和YUI,以及新兴的HTML5和CSS3技术。然而,仅仅局限于这些技术是不够的,前端开发...
- 分工协作:前端开发者专注于用户体验,后端开发者关注数据处理和逻辑实现。 本教程的1.2小节将更详细地讲解Web前端开发的技术细节,包括HTML、CSS、JavaScript的运用,以及如何通过这些技术实现高效的网页交互和...