`
ycyk_168
  • 浏览: 100654 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

DWR中的JS(1)-----$()

阅读更多
$()这个创意确实是从Protoype偷来的,但是Protoype是不是原创,那我就无从得知了。
util.js中$()的实现如下:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->var $;
if (!$) {
  $ 
= dwr.util.byId;
}

if (document.getElementById) {
  dwr.util.byId 
= function() {
    
var elements = new Array();
    
for (var i = 0; i < arguments.length; i++) {
      
var element = arguments[i];
      
if (typeof element == 'string') {
        element 
= document.getElementById(element);
      }
      
if (arguments.length == 1) {
        
return element;
      }
      elements.push(element);
    }
    
return elements;
  };
}
else if (document.all) {
  dwr.util.byId 
= function() {
    
var elements = new Array();
    
for (var i = 0; i < arguments.length; i++) {
      
var element = arguments[i];
      
if (typeof element == 'string') {
        element 
= document.all[element];
      }
      
if (arguments.length == 1) {
        
return element;
      }
      elements.push(element);
    }
    
return elements;
  };
}
同样的代码为什么要写两遍呢?就算Mozilla浏览器不支持document.all,难道IE下就不能使用document.getElementById吗?再看:Protoype中的实现:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->function $(element) {
  
if (arguments.length > 1) {
    
for (var i = 0, elements = [], length = arguments.length; i < length; i++)
      elements.push($(arguments[i]));
    
return elements;
  }
  
if (typeof element == 'string')
    element 
= document.getElementById(element);
  
return Element.extend(element);
}
两下相比,好像DWR并不比老师高招啊。而DWR文档上的说法是这样可以让更多的浏览器支持!!!document.getElementById()不是ECMA公布的标准吗?

    有点晕,刚才GOOGLE了一下,却发现了这篇文章http://www.cnblogs.com/xiang/archive/2005/10/08/250273.html,一试之下果然如此,看来真的要郑重的对待document.getElementById()和document.all了。
    这篇文章大致是说:在IE中,如果有一个HTML标签的name属性和id属性的值相同,那么document.getElementById抓到的是那个name,而不是id。
    还有就是:
document.getElementById IE5.0以下的不支持!
document.all IE4.0以上的支持!


分享到:
评论

相关推荐

    DWR中文文档--简单实用的小型Ajax框架

    - **编写JSP页面**:在JSP页面中使用JavaScript调用DWR服务。 #### 三、DWR配置详解 ##### 2.1 web.xml配置 - **主要配置**:包括DWR的servlet映射、初始化参数等。 - **安全参数**:设置DWR的安全级别,防止非法...

    DWR中文官方文档-打包下载

    DWR提供了丰富的JavaScript API,与jQuery、Prototype等库良好集成,方便在现有项目中使用。 8. **DWR的安全性和最佳实践**: - 应该限制暴露给客户端的方法,避免暴露敏感信息。 - 使用最新版本的DWR,以获取...

    DWR中文文档--方佳玮

    1. **DWR的基本概念** DWR的核心理念是实现在浏览器和服务器之间进行实时、异步的数据交换,这使得动态Web应用能够实现类似桌面应用的交互体验。它通过JavaScript API暴露Java方法,使得前端可以直接调用后端的业务...

    DWR入门程序---计算输入的两个数之和.rar

    DWR(Direct Web Remoting)是一种Java技术,用于在Web应用程序中实现JavaScript和服务器端Java代码之间的直接异步通信。这个“DWR入门程序---计算输入的两个数之和.rar”压缩包文件很可能是为了演示如何使用DWR来...

    dwr包.rar dwr.jar engine.js util.js dwr-noncla.jar readme.txt

    dwr包.rar dwr.jar engine.js util.js dwr-noncla.jar readme.txt JAR File: dwr.jar (1.08Mb) To DWR enable your web-app WAR File: dwr.war (4.62Mb) Demos/Examples of what DWR can do Sources: dwr-...

    Dwr 学习研究应用--Spring和DWR的整合

    1. **引入依赖**:首先,你需要在项目中引入DWR和Spring的相关依赖。通常,这可以通过Maven或Gradle的依赖管理来完成。确保引入DWR的核心库和Spring的相应模块,如spring-context支持。 2. **配置DWR**:在DWR的...

    DWR简单配置说明---xml、java、jsp层层说明

    1. **无需复制util.js和engine.js**:这两个文件不需要被复制到项目的JS目录中,它们应通过DWR servlet动态提供。 2. **路径匹配**:在引入JavaScript文件时,确保路径与`web.xml`中配置的路径相匹配,如`/dwr/*`。 ...

    DWR开发入门教程--配置与开发

    - `dwr/interface/testClass.js`: 自动生成的JavaScript文件,包含调用Java方法所需的代理函数。 - `dwr/engine.js`: DWR的核心库,提供底层通信支持。 - `dwr/util.js`: 提供一些实用工具函数。 #### 三、DWR调用...

    dwr.jar/dwr-2.0.5-src.zip/dwr.zip

    1. **DWR.jar**: 这是DWR的核心库文件,包含了运行DWR所需的所有类和资源。当你在项目中引入dwr.jar,你可以使用DWR提供的API来实现Ajax功能。这个jar文件包括了各种Servlet、Filter、JavaScript接口和辅助类,...

    dwr,jar和dwr-noncla.jar

    Direct Web Remoting (DWR) 是一个开源Java库,它允许在Web应用程序中轻松地进行JavaScript和服务器端Java代码之间的交互。DWR使得AJAX(Asynchronous JavaScript and XML)开发更为简便,允许开发者在不刷新整个...

    dwr入门 -- 03 -- 结合Spring

    DWR是一个Java库,允许在浏览器和服务器之间进行实时、双向通信,使得JavaScript可以直接调用Java方法,实现了Web应用中的Ajax功能。而Spring是广泛使用的Java企业级应用开发框架,提供了全面的基础设施支持,包括...

    dwr入门 -- 01 -- Hello Word

    在这个页面中,我们引入了DWR生成的JavaScript接口`HelloWorld.js`和核心引擎`engine.js`。`callServer`函数会在用户点击按钮时调用服务器的`sayHello`方法,并将结果显示在页面上。 ### 七、部署与测试 1. 将项目...

    dwr-1.1.1-util.js

    dwr-1.1.1-util.js

    dwr-1.1.3-src.zip

    DWR 是一个开源Java库,它允许JavaScript在Web浏览器中与服务器端的Java对象进行交互,实现Ajax功能。描述中的内容同样指向这个版本号,暗示了这是一个软件开发资源包。 标签 "dwr-1.1.3-src.zip" 重复了标题信息,...

    dwr-1.1.4-all-bin.zip

    1. **反向AJAX (Reverse AJAX)**:DWR通过创建JavaScript对象来映射服务器端的Java类和方法,使得JavaScript可以直接调用这些方法,实现了浏览器到服务器的异步通信。 2. **自动JSON支持**:DWR能够自动将Java对象...

    DWR框架的例子-ajax

    1. **客户端请求**:用户在浏览器中运行JavaScript代码,调用DWR提供的接口,指定要执行的服务器端方法和参数。 2. **DWR Engine**:DWR引擎接收这些请求,根据配置找到对应的Java方法。 3. **安全检查**:DWR执行...

    dwr-任何java类-测试

    这个“dwr-任何java类-测试”主题着重于如何利用DWR来调用Java类的方法并在前端JavaScript中显示结果。 首先,我们需要理解DWR的工作原理。DWR通过创建一个JavaScript接口,该接口映射到服务器上的Java类和方法。...

    DWR中文文档(pdf)

    #### 五、DWR中的JavaScript使用技巧 ##### 5.1 简单的回调函数 - **使用方法**: - 定义一个简单的JavaScript函数来处理服务器端返回的结果。 - 示例代码: ```javascript function handleResponse(data) { //...

Global site tag (gtag.js) - Google Analytics