jquery中ajax的get post同步请求问题分析

  今天需要用到ajax的get方法,封装到了自己自定义的function name,里面但是发现了一个问题,总是会自己自定义的方法里面的代码全部执行完成后才会去执行get,这样就导致了不同步,这样给我们程序员带了很大的不便,
 
 没有使用同步代码时候的get

 function name(){

 ret = 'y';

 $.get("xx.php", function(data){
   ret = data;
  });

 return ret;

 }

 获取到的结果总是未y然后,之后才会获取get请求里面的东西,这样就造成了不同步,可以使用以下代码

 设置ajax的同步全局变量

 $.ajaxSetup({
     async : false
  });

 这样就会同步了,但是我测试了一下,和我的部分代码有冲突,导致了cpu的饱满,或者可以换一种方法

 $.ajax({
           type : "get",
           url : "url",
           async : false, //开启同步
           success : function(r){

          //你们要执行的代码
          }
 });

例子

<%@ page language="java" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <title>JQuery</title>
  <mce:script type="text/javascript" src="/script/jquery-1.4.2.js" mce_src="script/jquery-1.4.2.js"></mce:script>
  <mce:script type="text/javascript"><!--
  /**同步的Ajax请求,在一个方法体内,方法体内的函数依赖于Ajax的响应结果*/
  function loadSomething()
  {
   var condition="";
   $.ajax({
    async:false;//使用同步的Ajax请求
    type: "POST",
       url: "some.php",
    data: "name=John&location=Boston",
    success: function(msg){
    condition=msg;
    }
   });
    /**
   *在这里处理condition
   *如果使用的异步的话,或许Ajax请求没响应到客户端,却被Ajax下面的代码掉用
   *所以有可能出问题
   */
  }
  
// --></mce:script>
 </head>
 <body>
 </body>
</html>

时间: 2024-09-17 04:48:17

jquery中ajax的get post同步请求问题分析的相关文章

jQuery中ajax的4种常用请求方式介绍_AJAX相关

AJAX 是一种与服务器交换数据的技术,可以在补充在整个页面的情况下更新网页的一部分. jQuery中ajax的4种常用请求方式: 1.$.ajax()返回其创建的 XMLHttpRequest 对象. $.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息.详细参数选项见下. 如果你指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml"). 实例: 保存数据到服务器,成功时显示信息. $.aj

jQuery中ajax的4种常用请求方式介绍

AJAX 是一种与服务器交换数据的技术,可以在补充在整个页面的情况下更新网页的一部分. jQuery中ajax的4种常用请求方式: 1.$.ajax()返回其创建的 XMLHttpRequest 对象. $.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息.详细参数选项见下. 如果你指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml"). 实例: 保存数据到服务器,成功时显示信息. $.aj

浅谈Jquery中Ajax异步请求中的async参数的作用_jquery

之前不知道这个参数的作用,上网找了前辈的博客,在此收录到自己的博客,希望能帮到更多的朋友: test.html <a href="javascript:void(0)" onmouseover="testAsync()"> asy.js function testAsync{ var temp; $.ajax({ async: false, type : "GET", url : 'tet.php', complete: functi

jquery中ajax函数执行顺序问题之如何设置同步

 这篇文章主要介绍了jquery中ajax函数执行顺序问题之如何设置同步,需要的朋友可以参考下 JavaScript code  代码如下: function existProduct(obj){    var productname = escape(obj.val());  $.getJSON("../product/searchProductByName.action",datat,function(data){  var falg;  falg = data[0]['exist

JQuery中$.ajax()方法参数详解及应用

 JQuery中$.ajax()方法想必大家并不陌生吧,在本文将为大家介绍下其参数及应用示例,感兴趣的朋友不要错过 url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址.    type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和    delete也可以使用,但仅部分浏览器支持.    timeout: 要求为Number类型的参数,设置请求超时时间(毫秒).此设置将覆盖$.ajaxSetup()方法的

jQuery中ajax的使用与缓存问题的解决方法

本篇文章主要介绍了jQuery中ajax的使用与缓存问题的解决方法.需要的朋友可以过来参考下,希望对大家有所帮助 1:GET访问 浏览器 认为 是等幂的 就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配] 所以 第二次访问的时候 如果 URL字符串没变化 浏览器是 直接拿出了第一次访问的结果   POST则 认为是一个 变动性 访问 (浏览器 认为 POST的提交 必定是 有改变的)   防止 GET 的 等幂 访问 就在URL后面加上 ?+new Date();,[总之

JQuery中ajax不能解析json

问题描述 JQuery中ajax不能解析json Action: @Controller @Scope("prototype") @Namespace("/") @ParentPackage("json-default") public class OaAction extends ActionSupport private String name; private String pass; private String msg; @Action

Jquery中$.ajax()方法参数详解_AJAX相关

俗说好记性不如个烂笔头,下面是jquery中的ajax方法参数详解,这里整理了一些供大家参考.  1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持. 3.timeout: 要求为Number类型的参数,设置请求超时时间(毫秒).此设置将覆盖$.ajaxSetup()方法的全局设置. 4.async

浅谈jQuery中Ajax事件beforesend及各参数含义_jquery

Ajax会触发很多事件. 有两种事件,一种是局部事件,一种是全局事件: 局部事件:通过$.ajax来调用并且分配. $.ajax({ beforeSend: function(){ // Handle the beforeSend event }, complete: function(){ // Handle the complete event } // ... }); 全局事件,可以用bind来绑定,用unbind来取消绑定.这个跟click/mousedown/keyup等事件类似.但他