`
bellstar
  • 浏览: 150646 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

javascript总结(一)有关框架

阅读更多
做过.NET,ROR,现专职JS满两年了.就开发过程中遇到的问题和做过的实践,从以下几个方面,做一个回忆记述,当总结.
有关框架只是一个泛泛的概述,希望大家多参与第二篇以后讨论,那些都是我在项目中的实际做法。点击以下面的链接

目录
(一)有关框架
(二)文件组织与代码组织
(三)JS与FLASH交互
(四)ajax局部刷新与RPC
  (五)获取设置元素样式与监听元素事件
  (六)页面元素的创建调整与关联
(七)浏览器兼容性问题
(八)WEB软件的前端架构实践

prototype:

       刚开始用的是prototype,我现在都忘光了。只记得是如何开始讨厌prototype的,有一次遇到一个问题,我定义了一个next(),然后我写onclick="next()",却没有执行到我定义的next(),查出是它执行了元素本身的next()方法,这个方法是prototype给他的,由此推论,它侵入于element的其他方法也有此问题,我很恶心它这么干。为此我还专门写了一个脚本去检查侵入性,见http://www.iteye.com/topic/251422#693230,除了用它检查框架的侵入性外,还用于检查自己的脚本中有没有无意中创建了全局变量。

jQuery:
       抛弃prototype之后,工作上一直用jQuery。
       好的方面
        短小精悍,特别赞他操作DOM的DSL,方法名短且实现风格统一,且覆盖到了DOM的方方面面。有了它你不用写长长的DOM方法。AJAX也很出色,$("sel").load(),$.get(),$.post().$.getJSON(),$.getScript()针对不同需求包装了不同的AJAX请求配置。
      不好的方面:
      CSS选择器,确实很强大,可我认为我只需要实现以下几种便可了。其它代码完全多余
jQuery("#id")  
jQuery("div.class")  
jQuery("#id>div.class ")
jQuery("#id div.class")

        插件质量方面。我用过的插件我几乎都改过,有的是有小BUG,有的是功能不全,有的文档示例不全。用过的有jScrollPane, jslider, sexyCombo, xxx tree, imageAreSelect ,只有validation稍满意。
       要用插件,大部分是出于UI widget的需求。jQuery UI只用过slider,我特别讨厌jQuery UI widget(无论插件还是官方)的接口风格和jQuery操作DOM的风格一样。当然它的THEME也一样的难看,虽然有很多种。我比较喜欢YUI的样子,很APPLE。UI方面是jQuery的软肋。基于此,如果YUI3的API接口不像YUI2那样的不统一和复杂,如果网站UI widget方面用的比较多的话,YUI也许比jQuery更适合。

YUI:
     关于YUI,YUI用过autocomplete和calendar,slider,写SUI的时候,也尝试过其他组件。YUI文档和API很全,UI漂亮,但API有点太过复杂。CSS方面也是,得在body上加一个yui的class,导致对原有的css产生影响。相对于jQuery,它更重量级,好在它有loader来解决依赖的问题。用过WEB QQ的应该很满意,WEB QQ用的就是YUI2.6。当然YAHOO.COM也是(有人不知道不)。对于YUI3,那是相当的期待。

Ext:
      做WEB软件一直用的是Ext,尝试过两种形式,一种是iframe,只用了表格,一种是单页面,全部都是Ext component。第一种我只用来做了简单的项目,通过简单配置来实现CRUD。我主要讲下单页面的,用EXT做业务复杂的WEB软件,不能一个一个页面独立开来做,那样会累死,还是得应用模板(可以用SUI),每种模板相对应一个控制页面组件的抽象类(VIEW控制层),套用此模板的页面代码继承此抽象类来实现自己的特殊逻辑。当然和后台交互的MODEL也有是以独立的类存在的,一句话,在前端我又分了三层。见图示:

(webApp,sui,ext也都是JS)
由于EXT有强大的STORE,它使得我们前端引用及操作数据的代码可以通过它和后端脱离出来。有一点小小的问题,就是EXT和ROR交互起来并不是很方便,我自己实现了符合REST的writer来操作数据。
Ext的UI组件丰富,也很成熟,虽然性能在IE上表现不佳,但这是IE的问题。Ext3.1性能据说大幅提升。
有了Ext,其实离做WEB软件还很远,因为界面和ajax形式的数据交互全部由前端来做的话,前端要很成熟的框架来搭架子,有个框架叫JS MVC,也许可以借鉴学习。
最后,上2张图养眼,不是美女!是界面欣赏  主界面   FORM window

qooxdoo:
       不了解的可以通过官方网站了解,也可以本人翻译的部分介绍查看
        javascript是一门隐晦的语言,在这一点上,我讨厌它。有诸如模拟实现类与OO的N种方法、不同位置不同声明方式变量作用域不同、function的各种声明和调用方式等等让人头大,还有可能一不小心就中招,写JS真的要小心翼翼。
        qooxdoo在JS之上构造了一门语言,然后以这个语言写了一套丰富的UI组件,相比较Ext,它的性能要好很多,虽然功能少了点。当然最主要的是用Ext,你还是要小心写JS。有了它你可以显式的声明你的对象及其OO关系,你会觉得安全很多,会找回写JAVA,C#的感觉。
        用qooxdoo你要花一定时间先学习它这个语言,虽然目前它在UI组件上还不及EXT,但它的底子很好,所以我相信用它来做WEB软件,会很有效率且让客户满意,隔了好长一段时间没有继续学习它了,要继续。

选择框架:
普通网站:jQuery,prototype, mootools
自定义UI widget较多的中大型网站:YUI
大的商业web软件,部署到企业内部: Ext, qooxdoo
小中型的web软件(放到互联网上的):jQuery.
分享到:
评论
2 楼 bellstar 2010-03-29  
hyj1254 写道
jQuery("#div.class")

jQuery("#div.class")与jQuery("#div")等价。
这个应该写成下面这样的:
jQuery("#div .class")

还有
....可我认为我只需要实现以下几种便可了。其它代码完全多余

那不用jQuery("#id + div"),怎么选择兄弟节点?


jQuery("#div.class")是我笔误了
至于引用兄弟节点,我觉得这样引用兄弟节点可扩展性不好,所以采用其他方式引用。
1 楼 hyj1254 2010-03-29  
jQuery("#div.class")

jQuery("#div.class")与jQuery("#div")等价。
这个应该写成下面这样的:
jQuery("#div .class")

还有
....可我认为我只需要实现以下几种便可了。其它代码完全多余

那不用jQuery("#id + div"),怎么选择兄弟节点?

相关推荐

    JavaScript的框架jquery文件

    jquery文件,属于JavaScript的一种框架。jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(框架)于2006年1月由John Resig发布。jQuery设计的宗旨是“write Less,Do More...

    基于闭包的JavaScript面向对象编程框架.pdf

    本文总结了基于闭包的JavaScript面向对象编程框架的设计和实现。通过使用闭包,实现了基于类的面向对象编程的封装、继承和多态特征。 闭包(Closure)是JavaScript中的一种编程技术,通过闭包,可以实现基于类的...

    简易而又灵活的Javascript拖拽框架

    总结来说,Drag5是一个专为简化和增强JavaScript拖拽功能设计的框架,它的简易性和灵活性使得开发者能够快速构建出具有高度定制性的拖拽效果,从而提升Web应用的用户体验。通过深入理解Drag5的工作原理和使用方法,...

    比较几个流行的JavaScript框架的性能

    总结来说,选择JavaScript框架应根据项目需求来决定。React适合需要高性能和灵活性的大型应用,Vue.js适合快速开发和轻量级项目,Angular适合需要全面解决方案的企业级应用,而Ember.js则为大型、复杂的应用提供了一...

    一个强大的和高效的Javascript框架帮助你建立强大的应用

    总结来说,选择一个强大的JavaScript框架是构建高效应用的关键。开发者应根据项目需求、团队技能和长期维护计划来决定最适合的框架。同时,持续学习和适应框架的最新版本以及社区的最佳实践,是提升开发能力的重要...

    Javascript,Html,Css,Frame框架整合的菜单样式

    总结起来,"Javascript,Html,Css,Frame,Frameset框架整合的菜单"是网页开发中的常见技术,它们共同作用,创建了一个可交互的、带有动态菜单的多帧布局。通过理解并熟练运用这些技术,开发者可以构建出功能丰富、...

    javascript cookie 操作框架 XCookie

    总结一下,XCookie是一个实用的JavaScript库,用于简化浏览器cookie的管理工作,它提供了一组易于理解和使用的API,涵盖了创建、读取、更新和删除cookie的各种操作。了解和掌握这个框架将有助于提高前端开发的效率,...

    JavaScript学习总结

    本文将围绕“JavaScript学习总结”这一主题,深入探讨其基本概念、语法特性、DOM操作以及与CSS的协同使用。 一、JavaScript基础 JavaScript由Brendan Eich在1995年发明,最初是为了网页交互而设计,现在已经成为...

    javascript多窗口多框架实例

    总结来说,JavaScript的多窗口和多框架技术提供了一种强大的工具来构建动态和交互性强的Web应用。通过理解并熟练掌握`window`对象、`frameset`、`frame`以及相关的API,开发者可以创建出更灵活、更具交互性的网页。...

    JS HTML经典框架

    JavaScript框架是预编写的一系列代码,用于简化JavaScript开发,提供可重用的组件,促进快速开发。它们通常包含用于处理DOM操作、事件管理、数据绑定、路由和动画等功能。一些知名的JavaScript框架包括: 1. ...

    JavaScript必看全面总结.zip

    这份名为“JavaScript必看全面总结.zip”的压缩包文件包含了一份深入的JavaScript学习笔记,旨在帮助开发者全面掌握这一动态类型的脚本语言。以下是根据标题和描述提炼出的JavaScript关键知识点: 1. **基础语法**...

    服务端JavaScript框架 RingoJS

    总结来说,RingoJS是一个优秀的服务端JavaScript框架,结合了JavaScript的易用性和Java的高性能,为开发者提供了一种全新的全栈开发选择。它的模块化设计、内置模块以及与Java的集成,使得它在构建Web应用时具有很高...

    100 行代码实现的 JavaScript MVC 样式框架

    总结来说,"100行代码实现的JavaScript MVC样式框架"是一个简化版的前端MVC架构,利用哈希路由实现在客户端的页面导航,通过有限的代码实现基本的模型-视图-控制器功能,为小型项目或学习MVC模式提供了便捷的起点。...

    JQuery框架 JS框架 JS javascript

    总结来说,JQuery作为一个强大的JavaScript库,极大地提升了开发效率,简化了复杂的DOM操作和Ajax交互,尽管现代JavaScript有许多原生替代方案,但JQuery仍然是许多开发者心中的首选,尤其在处理交互性和动画效果时...

    可自由隐藏框架的javascript代码

    总结起来,"可自由隐藏框架的javascript代码"主要涉及如何使用JavaScript来控制HTML中的IFrame元素的显示和隐藏,这可以通过直接修改`style.display`属性或操作`classList`来实现。在实际项目中,可以根据需求将这些...

    【JavaScript源代码】JavaScript与JQuery框架基础入门教程.docx

    JavaScript与JQuery框架基础入门教程  目录 一,JS对象二,DOM–1,作用–2,测试三,Jquery–1,概述–2,使用步骤–3,入门案例–4,jQuery的文档就绪四,JQuery的语法–1,选择器–2,常用函数–3,常用事件–4,...

    EasyValidator1.0---发布一个Javascript校验框架

    总结来说,EasyValidator 1.0 是一个强大的JavaScript验证工具,它简化了前端验证的实现,提高了代码质量,并且提供了丰富的验证规则和灵活的错误处理机制。对于任何需要进行前端数据验证的项目,都是一个值得考虑的...

    Javascript 刷新框架及页面的方法总集

    本文将详细介绍使用JavaScript进行页面和框架刷新的各种方法,并通过一个具体的示例进行展示。这些方法可以帮助开发者更好地控制Web应用程序中的页面更新逻辑。 #### 二、基本概念 在讨论具体的刷新方法之前,我们...

Global site tag (gtag.js) - Google Analytics