`
bellstar
  • 浏览: 150696 次
  • 性别: 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.
分享到:
评论
22 楼 andy54321 2010-04-02  
ext复杂一些,但是学好后界面漂亮很多,它是提供了一揽子方案;
jquery借助其强大的selector,能够方便的实现html 结构、样式、行为的分离,是很好很强大的纯js操作的替代
21 楼 wz_boy 2010-04-01  
happysoul 写道
最早接触JS也就是用用简单判断加上一个alert功能
后来接触的 prototype ,$F $A 等等让我眼前一亮,节省了很多重复的代码,慢慢的接触到了Ajax,又发觉代码量节省了很多很多...
随后从JS基础学起... 慢慢的扔掉了prototype 全都是用最基本的JS代码开发
再后来接触到了jquery,又找回了当初对prototype的激情...
现在JS+jquery交替使用ing 哈哈!

我还处在判断+alert阶段,想多听听关于怎样进阶学习js!
20 楼 bellstar 2010-03-31  
fins 写道
bellstar 写道
fins 写道
啥时候出(二)啊 ?
期待着呢

在文章头部已经有链接啊,我都已经写到五了,可是大多数人好像喜空泛的聊下框架。


可能是因为太细节的东西部具有通用性吧.

你写太细的东西 比如你写篇文章 介绍你是如何组织和使用某ajax框架的, 很多人可能在没看之前 就本能的觉得:他的做法未必适合我 于是就懒得看了 或者是看完后无法引起共鸣.

呵呵 不过没关系 我还是支持你写下去 就算没人响应  也可以当做一个积累和总结.
以后也许对自己会有很大帮助.

这一系列的总结,虽然写的都比较细,但基本覆盖到了网站开发(非指WEB软件)的各个方面,总结中的做法,就是我做JS的现状,反映了我在写JS处理各种事情使的基本思路。这个现状,是通过学习、与网友交流,并在实际项目中不断实践中得来的,但肯定还有很多不足和值得改进的地方,所以我相信做网站开发的一线程序员,也会有他们的做法,希望借鉴他们的讨论和做法,把细节做得更好,在思路上更加清晰。
19 楼 fxsc 2010-03-31  
要让我专职JS一定很痛苦,object,class,method不分,动态反射功能缺乏,交互对象太多,调试手段又太少,习惯静态语言了,但偶尔用JQuery写写代码还是很愉快的.
18 楼 fins 2010-03-31  
bellstar 写道
fins 写道
啥时候出(二)啊 ?
期待着呢

在文章头部已经有链接啊,我都已经写到五了,可是大多数人好像喜空泛的聊下框架。


可能是因为太细节的东西部具有通用性吧.

你写太细的东西 比如你写篇文章 介绍你是如何组织和使用某ajax框架的, 很多人可能在没看之前 就本能的觉得:他的做法未必适合我 于是就懒得看了 或者是看完后无法引起共鸣.

呵呵 不过没关系 我还是支持你写下去 就算没人响应  也可以当做一个积累和总结.
以后也许对自己会有很大帮助.
17 楼 sogo1986 2010-03-30  
YUI3也出了段时间了
16 楼 EldonReturn 2010-03-30  
fkpwolf 写道
EldonReturn 写道
bellstar 写道
fkpwolf 写道
总结很好阿,赞。dojo确实只适合企业信息系统,互联网应用还是jquery灵活性更好点。

EXT没有用过,不是很明白LZ所说的EXT "应用模板",能否详细说明下

见我的SUI类别文章

为啥这么说呢?求教

dojo和ext js都是宣称b/s的web开发模式,界面具强大。互联网应用一般提倡简洁,再说如果页面一股脑全用dojo替代,性能不会好的哪里去吧

这个性能有具体的数据不?貌似1.4的Dojo速度不慢啊
15 楼 fkpwolf 2010-03-30  
EldonReturn 写道
bellstar 写道
fkpwolf 写道
总结很好阿,赞。dojo确实只适合企业信息系统,互联网应用还是jquery灵活性更好点。

EXT没有用过,不是很明白LZ所说的EXT "应用模板",能否详细说明下

见我的SUI类别文章

为啥这么说呢?求教

dojo和ext js都是宣称b/s的web开发模式,界面具强大。互联网应用一般提倡简洁,再说如果页面一股脑全用dojo替代,性能不会好的哪里去吧
14 楼 luolonghao 2010-03-30  
引用
不好的方面:
      CSS选择器,确实很强大,可我认为我只需要实现以下几种便可了。其它代码完全多余

Sizzle确实代码比较多,Sizzie支持css3 selecotr的原因可能是为了将来,现在各浏览器的最新版本直接提供document.querySelectAll,再过几年估计不需要用Sizzle这样的JS selector了。
13 楼 bellstar 2010-03-30  
fins 写道
啥时候出(二)啊 ?
期待着呢

在文章头部已经有链接啊,我都已经写到五了,可是大多数人好像喜空泛的聊下框架。
12 楼 fins 2010-03-30  
啥时候出(二)啊 ?
期待着呢
11 楼 EldonReturn 2010-03-30  
bellstar 写道
fkpwolf 写道
总结很好阿,赞。dojo确实只适合企业信息系统,互联网应用还是jquery灵活性更好点。

EXT没有用过,不是很明白LZ所说的EXT "应用模板",能否详细说明下

见我的SUI类别文章

为啥这么说呢?求教
10 楼 EldonReturn 2010-03-30  
lokinell2006 写道
dojo 呢! dojo现在1.4.1了,有很多的widget可以用。

dojo还是很不错的,特别是它的核心库,不带widget的那个
9 楼 bellstar 2010-03-30  
fkpwolf 写道
总结很好阿,赞。dojo确实只适合企业信息系统,互联网应用还是jquery灵活性更好点。

EXT没有用过,不是很明白LZ所说的EXT "应用模板",能否详细说明下

见我的SUI类别文章
8 楼 fkpwolf 2010-03-29  
总结很好阿,赞。dojo确实只适合企业信息系统,互联网应用还是jquery灵活性更好点。

EXT没有用过,不是很明白LZ所说的EXT "应用模板",能否详细说明下
7 楼 lzz4438253 2010-03-29  
   不知楼主JS反射用得多吗...特指eval...这个曾经让我在将前端发布成AIR时费了好一阵力气。
6 楼 lokinell2006 2010-03-29  
dojo 呢! dojo现在1.4.1了,有很多的widget可以用。
5 楼 風一樣的男子 2010-03-29  
只用过 jQuery,现在用 mootools
4 楼 happysoul 2010-03-29  
兄弟节点 siblings()
找到每个div的所有同辈元素。
HTML 代码:
<p>Hello</p><div><span>Hello Again</span></div><p>And Again</p>
jQuery 代码:
$("div").siblings()
结果:
[ <p>Hello</p>, <p>And Again</p> ]

nextAll()查找当前元素之后所有的同辈元素。

不用jquery那只能是 xx.parentNode.childNodes
3 楼 happysoul 2010-03-29  
最早接触JS也就是用用简单判断加上一个alert功能
后来接触的 prototype ,$F $A 等等让我眼前一亮,节省了很多重复的代码,慢慢的接触到了Ajax,又发觉代码量节省了很多很多...
随后从JS基础学起... 慢慢的扔掉了prototype 全都是用最基本的JS代码开发
再后来接触到了jquery,又找回了当初对prototype的激情...
现在JS+jquery交替使用ing 哈哈!

相关推荐

    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