0 0

一段EXT 3下JS异步验证代码的疑惑10

用EXT框架(3.2.1)的时候遇到了用户名AJAX异步验证的问题,直接在VALIDATOR函数中写的话,由于AJAX异步执行,等不到服务器返回值,函数就先返回了
在网上搜到解决方案如下
var IsExsit = false;
function()
                   {
                      //本方法亦可以使用下面被注释的部分代替
                   var username = Ext.get('username').dom.value;
                   Ext.Ajax.request({
                      url:'CheckUserName.aspx',
                      params:{name:username},
                      success: function(response, options) {            
                         var data = Ext.util.JSON.decode(response.responseText);             
                         if(data.success == true)  ReturnValue(true);
                         else ReturnValue(false);//不能在success方法里面直接返回。
                      }  
                  });
                 function ReturnValue(ok){
                IsExsit = ok;
              }
              return IsExsit; 
                   },

但还是没有看懂,用谷歌浏览器调试,也和之前一样是先直接返回了IsExsit的原始值false,那么这个写法是如何把问题解决掉的呢?
2013年2月24日 00:51

5个答案 按时间排序 按投票排序

0 0

因为是异步的原因所以,他会执行下去, 你可以把之后的代码,放到 ajax方法的success里去调用。

2013年2月25日 16:16
0 0

用异步请求:return 写在分别success和failure里面,应该可以解决。 要不然就用同步请求,用到了ext-basex.js这个文件

2013年2月25日 09:07
0 0

ajax 异步的 在你的这个结构上面 我觉得没有解决方案 。

楼主为何一定要用返回值呢? 你可以在回调里面处理逻辑嘛。

2013年2月25日 08:41
0 0

楼主你理解的是对的。这是ajax的特点,不可避免的。如果不改变结构只有一个办法,就是把异步请求变成同步请求。记得没错的话Ext.Ajax.request提供了这方面的一个参数。

2013年2月24日 15:43
0 0

应该在 success 函数中判断这个值,如果返回特定的值(true)就调用相应的方法。当然要把你的标识符IsExsit 设置为true。

2013年2月24日 09:54

相关推荐

    Ext JS Library 2.2

    11. **社区支持**:尽管2.2版本相对较老,但在当时和之后的一段时间里,它拥有庞大的开发者社区,提供了许多示例代码、插件和解决方案,促进了库的广泛应用。 12. **兼容性**:Ext JS 2.2主要面向当时的主流浏览器...

    Ext Vtype 表单验证实现登陆

    Ext JS是一个强大的JavaScript框架,提供了丰富的组件和功能,包括复杂的表单验证机制。 首先,理解Vtype的概念。Vtype是Ext JS中的一种内置验证机制,用于对表单字段的输入值进行简单的验证。通过为表单字段设置...

    Ext3.0实现多文件上传.rar

    Ext3.0是一种广泛使用的JavaScript库,主要用于构建富互联网应用程序(RIA)。在“Ext3.0实现多文件上传.rar”这个压缩包中,我们聚焦于一个特定的功能:使用Ext3.0来实现实时的多文件上传功能。这个功能通常在网页...

    ext.net2.5configer配置

    这段配置指定了如何处理 Ext.NET 的脚本资源,确保了 Ext.NET 可以正常加载所需的 JavaScript 文件。 #### 3. 添加其他必要的配置项 除了上述基本配置外,可能还需要根据实际应用的需求添加更多配置项,例如设置...

    YUI-EXT使用详解

    5. **Ajax交互(Ajax Interactions)**:YUI-EXT集成了YUI的Ajax功能,允许在不刷新页面的情况下与服务器进行异步通信。这使得用户界面能够实时更新,提高了用户体验。 6. **工具提示(Tooltips)**:YUI-EXT还提供...

    Ext2.0.2的Ajax请求拦截示例

    在Ext JS中,Ajax请求是进行异步数据交互的基础,它允许页面在不刷新的情况下与服务器进行通信。本示例将深入探讨如何在Ext2.0.2中实现Ajax请求的拦截,以便在发送请求前或接收响应后执行自定义逻辑。 首先,我们...

    Ext.Direct.Mvc是ASP.NET Mvc.的Ext Direct服务器端堆栈的实现.zip

    Ext.Direct.Mvc是专门为ASP.NET MVC框架设计的一个扩展库,它实现了Sencha的Ext Direct技术,使得客户端的Ext JS与服务器端的ASP.NET MVC之间能够进行高效、便捷的数据交互。Ext Direct提供了一种标准化的方式来定义...

    ext-3.2-beta_6256-157.zip

    ExtJS 是一个流行的JavaScript库,专门用于构建富客户端的Web应用程序。它的主要功能是提供一套完整的用户界面组件和工具,让开发者能够创建出交互性强、功能丰富的网页应用。标题中的"ext-3.2-beta_6256-157.zip...

    EXT核心API详解.doc

    18. **Ext.util.DelayedTask类**:延迟任务,可以设定一段时间后执行函数。 19. **Ext.util.TaskRunner类**:任务调度器,可以周期性地执行任务。 20. **Ext.util.TextMetrics类**:用于测量文本的尺寸,帮助布局...

    javascript及ext学习要点(已完成).docx

    循环有for、while、do...while等结构,用于重复执行一段代码。 **10. break和continue语句** break用于跳出最内层循环,continue跳过当前循环的剩余部分,继续下一次循环。 **11. 异常处理** 通过try...catch语句...

    ext实现完整的登录代码

    在EXT JS中,实现一个完整的登录界面涉及到...综上所述,这段代码演示了EXT JS如何创建一个包含用户输入验证、表单提交和交互反馈的登录界面。EXT JS的灵活性和丰富的组件库使得构建复杂的Web应用程序变得更加容易。

    Ext中文文档

    - **Ajax与Ext.Ajax类**:介绍了Ajax技术的基本原理,以及如何使用Ext.Ajax类来发送异步请求。 - **Ajax文件上传**:讲解了如何利用ExtJS实现文件上传功能,这是Web开发中的常见需求。 #### 第十二章:分页与...

    自己对JS的一个透析

    - **Ext**:Ext是一个功能丰富的JavaScript框架,提供了丰富的UI组件和数据处理能力。 通过深入理解和掌握上述核心概念和技术,开发者可以更好地利用JavaScript构建高质量的应用程序。无论是前端还是后端开发,...

    Extjs规范(自己的)

    ExtJS 是一个强大的JavaScript 应用程序框架,用于构建富客户端Web应用。它提供了一整套组件和工具,使得开发者可以构建复杂的用户界面而无需深入HTML、CSS和JavaScript的底层细节。以下是我根据标题和描述整理出的...

    ExtJs学习资料47-完整的登录实例(非ajax提交).doc

    - `ext-base.js`:适配器文件,使得ExtJs能够与不同的JavaScript库(如jQuery)兼容。 - `ext-all.js`:核心库,包含了ExtJs的所有组件和功能。 - `ext-lang-zh_CN.js`:中文语言包,用于本地化显示。 2. **...

    EXTJS3.2-3.3中文API和包

    EXTJS 是一个基于JavaScript的富客户端应用开发框架,主要用于构建具有丰富用户界面的Web应用程序。EXTJS 3.2-3.3版本是EXTJS框架的一个重要阶段,它提供了大量的组件、布局、数据绑定和事件处理机制,为开发者带来...

Global site tag (gtag.js) - Google Analytics