`
cats_tiger
  • 浏览: 276558 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

让ecside2离开prototype.js

阅读更多
虽然fins老大不再维护Ecside,但是俺一直在用着它呀,所以只好自己动手丰衣足食了。Ecside一个不爽的地方是依赖prototype.js,而且(好像)只用到了它的ajax。俺们的项目中底层js框架用的是jquery,而且即便不用jquery,仅仅为了一个ajax而引进50k的prototype.js也是非常不值得的。所以自己修改了一下ecside.js文件:
//找到Me.ajaxSubmit = function(resfunc, asy, parameter) 函数,注释掉
//Form.request方法的调用,改为:
jQuery.ajax({
        	type: 'POST',
            url: Me.ECForm.action,
            data: jQuery(Me.ECForm).serialize(),
            beforeSend: ECSideUtil.setRequestHeaders,
            async: asy,
            complete: resfunc
        });
//找到ECSideUtil.doAjaxUpdate = function(url, pars, callBack, formid)函数,注释掉
//var myAjax = new Ajax.Request(url, {...,改为:
jQuery.ajax({
        	type: 'POST',
            url: url,
            data: pars,
            beforeSend: ECSideUtil.setRequestHeaders,
            async: true,
            complete: callBack
        });
//为EcSideUtil添加一个函数(从prototype中摘出来的):
ECSideUtil.setRequestHeaders = function(xhr, extras) {
	var headers = {
      'X-Requested-With': 'XMLHttpRequest',
      'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
    };

    if (this.method == 'post') {
      headers['Content-type'] = this.options.contentType +
        (this.options.encoding ? '; charset=' + this.options.encoding : '');

      /* Force "Connection: close" for older Mozilla browsers to work
       * around a bug where XMLHttpRequest sends an incorrect
       * Content-length header. See Mozilla Bugzilla #246651.
       */
      if (this.transport.overrideMimeType &&
          (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
            headers['Connection'] = 'close';
    }
     
    for (var i = 0, length = ECSideConstants.AJAX_HEADER.length; i < length; i += 2)
        headers[ECSideConstants.AJAX_HEADER[i]] = ECSideConstants.AJAX_HEADER[i+1];
     
};

OK,搞定。如果不想用jquery,可以使用任何js框架,比如用ExtJS,也可以自己写一个Ajax提交的方法。最后的那个setRequestHeaders可以不要的,有很多方法设置header...
BTW:怎么觉得这个文章俺好像写过一次了,汗...
======================================================
又改了一下,吧“提交...”挪到中间了,同时为排序加了“提交”
  • ecside-unpack.rar (16.2 KB)
  • 描述: 吧ecside-unpack.js改名为ecside.js即可使用。注释中By SAM是俺改的地方
  • 下载次数: 143
分享到:
评论
3 楼 retow 2008-07-31  
	var updateShadowRow = ECSideUtil.updateShadowRow.bind(this, crow,shadowRow, formid);

bind也是prototype.js中的吧??
2 楼 wuhui 2008-07-10  
我也是用JQuery的 谢谢了
1 楼 zqgogogo 2008-04-18  
适合我!我也是用JQuery的
哈哈

相关推荐

    prototype_1.7.3.js 最新版本

    《prototype_1.7.3.js:JavaScript框架的里程碑》 在JavaScript的世界里,Prototype库是一个不可或缺的重要组成部分,尤其在Web开发领域,它为开发者提供了强大的功能和便利性。Prototype_1.7.3.js是这个库的一个...

    prototype.js简介

    2. **DOM操作** - 为了解决JavaScript操作DOM的繁琐,prototype.js 提供了一系列便捷的方法,如`Element.select()`用于选取一组元素,`Element.hide()`和`Element.show()`控制元素的可见性,以及`Element.update()`...

    prototype.js

    《prototype.js:JavaScript框架的核心与应用》 在Web开发领域,JavaScript库和框架极大地提高了开发效率,其中Prototype.js就是一款非常流行的开源JavaScript框架。本文将深入探讨Prototype.js的核心概念、功能...

    prototype.js 1.4-1.6[全]

    《Prototype.js 1.4-1.6:JavaScript 动态原型框架的探索与实践》 Prototype.js 是一个广泛使用的JavaScript库,它扩展了JavaScript语言的功能,为开发人员提供了更强大的面向对象编程支持。该库的核心特性是其对...

    prototype.js文件使用和讲解

    `prototype.js`是一个开源库,旨在扩展JavaScript的基础功能,尤其是面向对象编程的支持。这个库由Sam Stephenson创建,是Prototype Library的一部分,广泛应用于Web应用开发中,尤其在Rails框架下的Ajax开发。 ###...

    prototype.js 1.6中文手册、prototype.js 1.6英文手册、

    Prototype.js 是一个开源的JavaScript库,它扩展了JavaScript语言,为开发者提供了许多便利的功能,特别是在对象操作、DOM操作和事件处理方面。1.6版本是该库的一个重要里程碑,引入了诸多改进和新特性。 ### 1. ...

    prototype.js javaScript插件

    "Prototype.js"是一个针对JavaScript的开源库,旨在增强和扩展JavaScript的基本功能,尤其在处理DOM(文档对象模型)操作、事件处理以及Ajax交互时提供了极大的便利。 ### 1. Prototype.js核心概念 - **原型链**:...

    prototype.js中文手册

    Prototype.js 是一个开源JavaScript库,由Sam Stephenson于2005年创建,主要用于简化DOM(文档对象模型)操作,增强JavaScript的面向对象编程能力,以及提供实用的函数扩展。它在Web开发中扮演着重要的角色,尤其在...

    prototype.js 1.6

    《Prototype.js 1.6:JavaScript 动态对象增强库的深度解析》 Prototype.js 是一个广泛使用的 JavaScript 库,它为浏览器环境提供了许多实用的功能,尤其是在对象操作和事件处理方面。1.6 版本是该库的一个重要里程...

    prototype.js 1.4版开发者手册(强烈推荐)

    《prototype.js 1.4版开发者手册》是JavaScript开发领域中的一个重要参考资料,尤其对于那些希望深入理解并利用Prototype库的开发者来说,它是一份不可多得的资源。Prototype.js是一个强大的JavaScript库,由Sam ...

    prototype.js 实例

    在JavaScript的世界里,Prototype.js是一个著名的库,它扩展了JavaScript的内置对象,为开发者提供了更加便利的编程体验。本实例将深入探讨如何利用Prototype.js来实现弹出窗口和移动窗口的功能,这对于创建交互性强...

    prototype.js jquery.js 打包下载(包含各自的API)

    Prototype.js是最早期的JavaScript框架之一,它的设计目标是增强JavaScript的基本功能,使得JavaScript的面向对象编程更加简洁和强大。Prototype的核心特性包括: 1. **对象扩展**:Prototype通过扩展JavaScript的...

    prototype.js_v1.6_含中英文手册

     prototype.js是一个非常优雅的javascript基础类库,对javascript做了大量的扩展,而且很好的支持Ajax,国外有多个基于此类库实现的效果库,也做得很棒。  prototype.js不仅是一个有很大实用价值的js库,而且有很...

    prototype.js.cn.doc.rar

    2. **Selectors API**:Prototype.js兼容了CSS选择器,提供了`$$()`函数,可以像操作CSS一样选取DOM元素,增强了JavaScript的选择器能力。 3. **Element对象**:Prototype.js强化了DOM元素的操作,如`Element.hide...

    在vs2005基于prototype.js的模态弹出窗口

    **Prototype.js** 是一个轻量级的JavaScript库,旨在简化DOM操作,提供面向对象的JavaScript编程,并且包含一些实用的辅助函数。在2005年,Prototype.js因其强大的功能和易用性而受到开发者的欢迎,尤其在创建动态...

Global site tag (gtag.js) - Google Analytics