实时搜索: ajax的回调函数是谁调用的

ajax的回调函数是谁调用的

720条评论 5223人喜欢 5848次阅读 484人点赞
——————————————————————————————————
浏览器端部分代码

<script type="text/javascript">

var xmlHttpRequest=null;

function createXmlHttpRequest(){
if(window.ActiveXObject){
// alert(window.ActiveXObject);
xmlHttpRequest=ne...

可不可以在AJAX的回调函数中再次提交一个请求: 可以的,完全没有问题

ajax 回调函数怎么修改全局变量,小弟求教,望高手助我!: 在回调函数里面可以ajaxSerivce.方法名(参数,回调函数);
在js中的回调函数(返回值)里面,如果是js全局变量可以直接在此处修改值,因为回调函数的参数,就是ajax调用方法的返回值。如果是页面上的内容,则可以直接通过js改变页面上的显示值,例如,innertHTML,innerText.value,等都可以改变显示的值。

一个ajax的小程序,回调方法就是不被调用。: function createXmlHttpRequest(){
var o = null;
if(window.XMLHttpRequest) {
o = new XMLHttpRequest();
} else {
var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
for(var n = 0; n < MSXML.length; n++){
try{
o = new ActiveXObject(MSXML[n]);
break;
}catch(e){
}
}
}
xmlHttpRequest=o;
return o;
}

//你的js有问题

ajax异步调用,回调函数的问题,this未定义: updateEvent()中this代表的是方法本身,this.myState代表updateEvent()中的myState参数,但是在这个方法里你并未定义。
<input type="text" onclick="a(this.value)" />中的this代表的是文本框本身,所以value属性是默认的,不需要写上去。
纯属个人看法。。

新手请问用jqPaginator怎么实现ajax翻页,回调函数怎么写: 能 ajax 获取的其实就是 你指向的页面 运行后生成的html代码 只要你在那个页面将想输出的输出出来就可以了

关于AJAX的简单示例问题,高分!~:   11,把AjaxPro.dll放入应用程序之bin文件夹中,并添加参照
  22,修改web.config
  3
  4在system.web节点下添加
  5
  6<SYSTEM.WEB>
  7 <HTTPHANDLERS>
  8<ADD type="AjaxPro.AjaxHandlerFactory, AjaxPro" path="ajaxpro/*.ashx" verb="POST,GET" />
  9</HTTPHANDLERS>
  10
  11
  123,在后台cs文件中声明ajax
  13namespace MyDemo
  14{
  15 public class _Default
  16 {
  17 protected void Page_Load(object sender, EventArgs e)
  18 {
  19 AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));
  20 }
  21
  22 [AjaxPro.AjaxMethod]
  23 public int GetAdd(int a,int b)
  24 {
  25 return a+b; }
  26 }
  27}
  28
  293、在客户端用javascript调用服务器端之方法,语法也很简单
  30
  31function get()
  32{
  33 var a=4;
  34 var b=5;
  35 MyDemo._Default.GetAdd(a, b ,get_callback); //调用后台函数
  36}
  37
  38
  39function get_callback(res) //返回值处理函数
  40{
  41 alert(res.value);
  42}
  43
  44就这样,简单之几步,就已经完成了。在客户端用javascript异步调用服务器端之C#方法,并可以得到服务器端之返回值,这个值会传到javascript,javascript可以处理这个返回之值,现在返回的是一个简单的整型,不过,我们也可以返回复杂之数据类型,像DataTable之类,总之,AjaxPro把Ajax搞得很简单。
  45
  46
  47补充:
  48如果返回的是DataTable时的取值方式如下:
  49dt.Rows[0].userid; 取得数据集中的字段名为userid的数据;
  50dt.Rows.length; 取得数据集的行数;

  下面的文章是从网络上找的,经过研究加以注释,这个例子非常简单,可作入门之用。

  cf8ajax.cfm:

  <cfprocessingdirective pageencoding=”utf-8〃>
  <cfajaxproxy cfc=”echo” jsclassname=”respond”>
  <html>
  <head>
  <script type=”text/javascript”>
  function getResponse() {
  //通过DOM方式获取表单中的文本
  var name = document.getElementById(’name’).value
  //实例化CFC, “respond”是组件echo在Javascript中的别名
  var r = new respond()
  //设置回调函数
  r.setCallbackHandler(displayResponse)
  //如果发生错误,将执行此方法,如网络问题
  r.setErrorHandler(errorHandler)
  //调用组件方法
  r.echo(name)
  }

  //没有问题,成功时的回调函数
  function displayResponse(resp) {
  document.getElementById(”responseArea”).innerHTML = resp
  }

  //出现问题了,出错时的回调函数
  function errorHandler(statusCode,statusMsg) {
  alert(statusCode+’: ‘+statusMsg)
  }
  </script>
  </head>
  <body>
  姓名:<input type=”text” id=”name” size=”10〃>
  <input type=”button” value=”告诉我” onclick=”getResponse()”><br />
  <span id=”responseArea”></span>
  </body>
  </html>

  echo.cfc ajax要调用的后台组件:

  <cfcomponent>
  <cfprocessingdirective pageencoding=”utf-8〃>
  <cffunction name=”echo” access=”remote” returnFormat=”json” output=”false”>
  <cfargument name=”inputTxt” type=”String”>
  <cfset inputTxt = “Hi “&inputTxt&”, 最近好吗?”>
  <cfreturn inputTxt>
  </cffunction>
  </cfcomponent>

JAVA里面方法回调是什么意思:

回调只是个概念,就是把你的接口对应的实现类的一个实例当成一个参数传递给一个函数调用,那个函数处理过程中会调用你的这个接口中的方法。


在下面这个方法中,formatter 是一个回调,因为 receiveMessage  本来是被你调用的,但它回过头来调用你提供的 MsgFormatter 方法,这就是概念。


byte[] buffer = ...;

Msg receiveMessage(SocketChannel channel, MsgFormatter formatter) {
       // 读取网络数据,并请求 formatter 来识别它是什么格式,如果是某种消息格式的一个完整的报文条目(比如一个完整的QQ消息)就返回它,否则返回 null 并缓存部分不完整的内容并在下一次得到一条完整消息时再返回它。
       
       buffer = getBytes(channel);
       // 读取到部分字节后询问 formatter 来猜测一下它的格式,这是否一条完整消息以及消息类型。
       boolean fullyReceived = formatter.guessFormat(buffer);
       if (fullyReceived) {
          Msg msg = formatter.decode(buffer);
          // 消息已经处理了,清空缓存的部分内容,下次重新接收。
          buffer = ... ;
          return msg;
       } else {
           return null;
      }
}

Jquery怎么样实按钮不回传,无刷新技术?: 通过 HTTP 请求加载远程数据。

jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该对象,但特殊情况下可用于手动终止请求。

$.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息。详细参数选项见下。

注意: 如果你指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml")。错误的 MIME 类型可能导致不可预知的错误。见 Specifying the Data Type for AJAX Requests 。

注意:如果dataType设置为"script",那么在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)

jQuery 1.2 中,您可以跨域加载 JSON 数据,使用时需将数据类型设置为 JSONP。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。数据类型设置为 "jsonp" 时,jQuery 将自动调用回调函数。

参数
options (可选)ObjectAJAX 请求设置。所有选项都是可选的。

选项
asyncBoolean(默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

beforeSendFunction发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。XMLHttpRequest 对象是唯一的参数。这是一个 Ajax 事件。如果返回false可以取消本次ajax请求。

function (XMLHttpRequest) {
this; // 调用本次AJAX请求时传递的options参数
}
cacheBoolean(默认: true,dataType为script时默认为false) jQuery 1.2 新功能,设置为 false 将不会从浏览器缓存中加载请求信息。

completeFunction请求完成后回调函数 (请求成功或失败时均调用)。参数: XMLHttpRequest 对象和一个描述成功请求类型的字符串。 Ajax 事件。

function (XMLHttpRequest, textStatus) {
this; // 调用本次AJAX请求时传递的options参数
}
contentTypeString(默认: "application/x-www-form-urlencoded") 发送信息至服务器时内容编码类型。默认值适合大多数应用场合。

dataObject,String发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 '&foo=bar1&foo=bar2'。

dataFilterFunction给Ajax返回的原始数据的进行预处理的函数。提供data和type两个参数:data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。

function (data, type) {
// 对Ajax返回的原始数据进行预处理
return data // 返回处理后的数据
}
dataTypeString
预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息返回 responseXML 或 responseText,并作为回调函数参数传递,可用值:

"xml": 返回 XML 文档,可用 jQuery 处理。

"html": 返回纯文本 HTML 信息;包含的script标签会在插入dom时执行。

"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了"cache"参数。'''注意:'''在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)

"json": 返回 JSON 数据 。

"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

"text": 返回纯文本字符串

errorFunction(默认: 自动判断 (xml 或 html)) 请求失败时调用时间。参数有以下三个:XMLHttpRequest 对象、错误信息、(可选)捕获的错误对象。如果发生了错误,错误信息(第二个参数)除了得到null之外,还可能是"timeout", "error", "notmodified" 和 "parsererror"。Ajax 事件。

function (XMLHttpRequest, textStatus, errorThrown) {
// 通常 textStatus 和 errorThrown 之中
// 只有一个会包含信息
this; // 调用本次AJAX请求时传递的options参数
}
globalBoolean(默认: true) 是否触发全局 AJAX 事件。设置为 false 将不会触发全局 AJAX 事件,如 ajaxStart 或 ajaxStop 可用于控制不同的 Ajax 事件。

ifModifiedBoolean(默认: false) 仅在服务器数据改变时获取新数据。使用 HTTP 包 Last-Modified 头信息判断。

jsonpString在一个jsonp请求中重写回调函数的名字。这个值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,比如{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器。

passwordString用于响应HTTP访问认证请求的密码

processDataBoolean(默认: true) 默认情况下,发送的数据将被转换为对象(技术上讲并非字符串) 以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。

scriptCharsetString只有当请求时dataType为"jsonp"或"script",并且type是"GET"才会用于强制修改charset。通常在本地和远程的内容编码不同时使用。

successFunction请求成功后的回调函数。参数:由服务器返回,并根据dataType参数进行处理后的数据;描述状态的字符串。 Ajax 事件。

function (data, textStatus) {
// data 可能是 xmlDoc, jsonObj, html, text, 等等...
this; // 调用本次AJAX请求时传递的options参数
}
timeoutNumber设置请求超时时间(毫秒)。此设置将覆盖全局设置。

typeString(默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET"。注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。

urlString(默认: 当前页地址) 发送请求的地址。

usernameString用于响应HTTP访问认证请求的用户名

xhrFunction需要返回一个XMLHttpRequest 对象。默认在IE下是ActiveXObject 而其他情况下是XMLHttpRequest 。用于重写或者提供一个增强的XMLHttpRequest 对象。这个参数在jQuery 1.3以前不可用。

示例
描述:
加载并执行一个 JS 文件。

jQuery 代码:
$.ajax({
type: "GET",
url: "test.js",
dataType: "script"
});描述:
保存数据到服务器,成功时显示信息。

jQuery 代码:
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});描述:
装入一个 HTML 网页最新版本。

jQuery 代码:
$.ajax({
url: "test.html",
cache: false,
success: function(html){
$("#results").append(html);
}
});描述:
同步加载数据。发送请求时锁住浏览器。需要锁定用户交互操作时使用同步方式。

jQuery 代码:
var html = $.ajax({
url: "some.php",
async: false
}).responseText;描述:
发送 XML 数据至服务器。设置 processData 选项为 false,防止自动转换数据格式。

jQuery 代码:
var xmlDocument = [create xml document];
$.ajax({
url: "page.php",
processData: false,
data: xmlDocument,
success: handleResponse
});

  • ipad怎样删除联系人

    无线路由器后面有开关乘1.乘5.乘10那是什么: 拍照看看是什么东西?骗小白的噱头吧。 ...

    201条评论 5956人喜欢 3418次阅读 534人点赞
  • 0533是哪里区号

    二十地支是什么: 子(zǐ)、丑(chǒu)、寅(yín)、卯(mǎo)、辰(chén)、巳(sì)、午(wǔ)、未(wèi)、申(shēn)、酉(yǒu)、戌(xū)、亥(hài)十二地支 ...

    692条评论 2483人喜欢 2063次阅读 795人点赞
  • 1080i和720p哪个清晰

    三十六,天干是多少地支是什么、: 十天干:甲(jiǎ)、乙(yǐ)、丙(bǐng)、丁(dīng)、戊(wù)、己(jǐ)、庚(gēng)、辛(xīn)、壬(rén)、癸(guǐ);其中甲、丙、戊、庚、壬为阳干,乙、丁、己、辛、癸为阴干。十二地支:子...

    251条评论 5235人喜欢 4805次阅读 529人点赞
  • dnf开盒子在哪买

    10AX250V电源开关怎么接是两个孔的: 程度 ...

    628条评论 2276人喜欢 1653次阅读 523人点赞
  • .小米4x和魅族5哪个好

    跪求解答:将(98.125)10转换为二进制数(要有计算过程),再转换为八、十六进制数。: 10进制转2进制是一个连续除2的过程,一直要除到商数为0为止,然后把全部余数倒过来就得到2进制数,列98除以2=49余0,49除以2=24余数1,24除以2=12余数0,12除以2=6余数0,6除以2=3余数0,3除...

    438条评论 2994人喜欢 5889次阅读 389人点赞
  • 昆山三星手机售后在哪

    十天干,十二地支各指什么?用这种纪年法,2005是什么年?: 甲、乙、丙、丁、戊、己、庚、辛、壬、癸被称为“十天干”,子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥叫作“十二地支”。2005是乙酉年. ...

    296条评论 3336人喜欢 4918次阅读 460人点赞
  • 身上有静电怎么办

    一位单控开关KA86K11-10BN 是哪个厂家: 杭州鸿雁电器有限公司 ...

    438条评论 5140人喜欢 1035次阅读 515人点赞