Ajax.request方法的问题

问题描述

myAjax=new Ajax.Request(url,{method:'get',asynchronous:'false',parameters:par,onComplete:getResults});function getResults(oriRequest){var text1=oriRequest.responseText;if(trim(text1)=="none"){alert("该用户不存在!"); return true;}else{ alert("该用户已经存在,填写无效!");return false;}我如何能从myAjax的值中得到getResults的返回值呢?

解决方案

声明一个变量不就可以了?var result;function getResults(oriRequest){//... result = false;} 如果怕出现冲突,你可以将整个script封装成一个Object:var MyObj = function() {};MyObj.prototype = { result:false, getResults: function(oriRequest) { // this.result = false; }}不过,Ajax就应该是异步的,同步的Ajax没有意义,所有的操作都必须在回调函数中执行。
解决方案二:
回LS:1.Ajax的A就是异步的意思呀(asynchronous) 2.同步请求都可以用异步请求代替,如果不能,说明思路有问题或者概念不清(比如弄不清js的作用空间)。3.你会在一个多线程应用中大量的用sychronized?或者在servlet中使用sychronized修饰service方法?4.Ajax的作用在于提高客户体验,如果请求都是同步的,浏览器动不动就僵在那里,这和非ajax应用有区别吗?非ajax应用好歹客户还知道浏览器正在刷新页面,而同步ajax请求造成的却是假死机!
解决方案三:
引用不过,Ajax就应该是异步的,同步的Ajax没有意义,所有的操作都必须在回调函数中执行。cats_tiger 解释下为什么同步的AJAX没有意义好吗?

时间: 2024-09-18 11:56:04

Ajax.request方法的问题的相关文章

ext.ajax.request方法用法详解

json数据服务器回传的方法. 在api总指出回传的格式  代码如下 复制代码 {success;true,data:{clientName: "Fred. Olsen Lines",   portOfLoading:"FXT",portOfDischarge: "OSL" }  }}} 需要注意的是这里的success和data是关键字,(姑且这么叫吧)在data中是数据在客户端通过 Ext .decode(response.responseT

Ext.Ajax.request()方法和FormPanel.getForm().submit()方法,都返回success()方法的差异

我还是不发表到博客园首页吧,要不然还是要被取消,>_< 还是言归正传吧,关于Ext.Ajax.request()方法和FormPanel.getForm().submit()方法返回success()方法的差异, Ext.Ajax.request({ url: '', async: false, success: function (response) { var obj = eval("(" + response.responseText + ")")

Ext.Ajax.request和formPanel.getForm().submit两种提交方法的区别

Ext.Ajax.request和formPanel.getForm().submit()两种提交方法的异同: 1. 相同点: a) 都是使用异步提交的方式: b) 默认都是使用POST方式来提交数据: 2. 不同点: a) Request方法不可以使用waitMsg属性来设置在等待响应过程中显示的信息,而submit方法提交时这个设置是可用的(可以看到效果,而前面说的不可用是指设置了看不到效果): b) Request方法必须将要提交的参数手动组织好然后作为名为params的参数的值才能提交到

Extjs中对ajax中request方法的重写,对请求的过滤

涛哥实力派,是一匹千里马,可惜了水货上司. 失败发生在彻底的放弃之后.我对我的上司失望极了. 公司最近在完成一个项目,项目已经进行到尾声了,还没有进行对回话为空进行过滤.在涛哥提出后,上司研究了半天解决不了,最后丢给涛哥解决.虽说解决问题是每个人的义务,不是每个人的责任.但涛哥还是抱着学习的态度,解决问题.最终得以解决.直接上重新的代码: Ext.override(Ext.Ajax, { request: function(options) { options = options || {};

转:ExtJS中Ext.Ajax.request与form1.getForm().submit的基本区别

问题描述 相同点:都属于Ajax提交方式!不同点:Ext.Ajax.request是Ext.data.connection的一个实例form1.getForm().submit是BasicForm的一个实现方式使用上的区别:1.form1.getForm().submit常用在表单提交的时候,就是说要提交页面数据,比如新增和修改数据页面2.Ext.Ajax.request常用在根据参数提交的时候,比如删除,我们把页面选中的ID进行遍历,封装在一个Array中,作为一个参数做Ajax的提交例子:首

Jquery Ajax请求方法小结(值得收藏)_AJAX相关

 jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯. 废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()的(这个后面会说到). 1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. url (String) :

在JavaScript的jQuery库中操作AJAX的方法讲解_jquery

Java软件开发中,后台中我们可以通过各种框架,像SSH等进行对代码的封装,方便我们对Java代码的编写,例如,Struts,SpringMVC对从前台到action的流程进行封装控制,使我们只需要进行一些简单配置就可以实现:而Spring进行了对各种对象的管理进行封装,提供了AOP编程的方式,大大方便了我们:而Hibernate和IBatis则是对JDBC代码进行封装,不需要我们每次都写那些重复而繁杂的JDBC代码.   前台呢,对于页面一些效果,验证等,我们都是通过JavaScript语言进

也写一个Ajax.Request类附代码_AJAX相关

目的:因为blog程序里的某些模块需要用到ajax,直接使用prototype.js体积比较大(40多k),而且仅仅用到其中的ajax功能,因此为了减轻下载的负担,又不能改动已经在prototype.js框架下写好的代码,只能是按照prototype的风格,自己写一个ajax类,达到零成本移植框架. 新的ajax类如下: var Ajax = {xmlhttp:function(){ try{ return new ActiveXObject('Msxml2.XMLHTTP'); }catch(

jQuery ajax(复习)—Baidu ajax request分离版_javascript技巧

你没有看错标题,本文的确是在讲Baidu ajax,不过是很久很久以前的版本了. 由于jQuery ajax模块有800+行,而核心函数jQuery.ajax就有380+行,直接分析这段代码很容易被代码逻辑弄晕. 所以我们先分析一段简单的ajax代码,来自早期的百度七巧板项目. 通过这个来先复习一遍ajax的知识. baidu.ajax.request分离版 复制代码 代码如下: /** * 发送一个ajax请求 * @author: allstar, erik, berg * @name aj