1. 程式人生 > >ajax方法非同步與同步的轉換

ajax方法非同步與同步的轉換

ajax技術,相信開發web的都耳熟能詳了!但是ajax能實現同步嗎?

能!

 ajax:Asynchronous Javascript And XML
    非同步不刷新技術 (http://www.runoob.com/jquery/ajax-ajax.html)                   
 ajax寫法:
     $.ajax(
     type:"POST/GET",
     url:"",
     data:{},
     dataType:"json",
     async:true/false,//非同步還是同步
     success:function(response){
     }
     ); 
  在post/get提交方式的簡寫:
     $.post/get("url",{data},function(response){});//預設是非同步的!
  但是僅限於以上就顯得很low了。    

首先用success是n年前的事了:
推薦用.done();
$.ajax(type:”post/get”,data:{},).done(function(response){});
注意括號!

這是最常見的使用ajax方法了。下面實現ajax的同步請求:
$.ajax(
type:”“,
data:{},
async:false,
).done(
function(response){
});

ajax同步請求最常見的就實現ajax請求的結果資料返回。
比如在用ajax方法成功得到相應後,我們需要把ajax的返回結果return出去給外部的函式使用這時需要同步。

function ajax()
{
var backData;
$.ajax(
type:”post”,
data:{},
async:false,//更改為同步
).done(
function(response){
backData=response;
});
return backData;
}
var newData=ajax();
此時newData=response;
在此過程中注意修改async,它如果是true(預設),那麼就是在非同步的情況下,這種情況下實現return是不能實現的,因為非同步就說明了程式的執行順序和效果發生了改變。修改為同步,實現返回值。

相關推薦

ajax方法非同步同步轉換

ajax技術,相信開發web的都耳熟能詳了!但是ajax能實現同步嗎? 能! ajax:Asynchronous Javascript And XML 非同步不刷新技術 (http://www.runoob.com/jquery/ajax-aj

ext tree的非同步同步載入

ext中,對tree的展現方式有兩種:一是每個node逐個載入,逐次查詢資料庫;一是一個tree一次載入完成,只查詢一次資料庫。此次查詢資料庫的方式也有兩種,一種是普通的select查詢方式: select * from table 一種是採用資料庫的樹狀查詢方式: sel

非同步同步原理

非同步傳輸是面向字元的傳輸,它的單位是字元;而同步傳輸是面向位元的傳輸,它的單位是楨,它傳輸的時候要求接受方和傳送方的時鐘是保持一致的。 具體來說,非同步傳輸是將位元分成小組來進行傳送。一般每個小組是一個8位字元,在每個小組的頭部和尾部都有一個開始位和一個停止位,它在傳送過程

Ajax()方法如何後臺互動

Ajax全稱為“Asynchronous JavaScript and XML”(非同步JavaScript和XML),是指一種建立互動式網頁應用的網頁開發技術。Ajax技術是目前在瀏覽器中通過JavaScript指令碼可以使用的所有技術的集合。Ajax以一種嶄新的方式來使

python中的非同步同步

非同步:多工,多個任務之間執行沒有先後順序,可以同時執行,執行的先後順序不會有什麼影響,存在的多條執行主線 同步:多工,多個任務之間執行的時候要求有先後順序,必須一個先執行完成之後,另一個才能繼續執行,只有一個主線 阻塞:從呼叫者的角度出發,如果在呼叫的時候,被卡住,不

非同步請求同步請求之間的轉換

1.同步請求表單提交 <form id="orderForm" action="order_add.action" class="form-horizontal" method="post"> <a href="javascript:$('#orderForm').subm

stringQString之間的轉換(兩種方法:fromStdString直接轉換,或者fromLocal8Bit(cstr.c_str())

div body from local AR c_str dst blog 轉換 string str;QString qstr;//從QString 到 std::stringstr = qstr.toStdString();//從std::string 到QString

java 同步代碼塊同步方法

this AD 監視器 鎖定 數量 money acc 余額 位置 同步代碼塊 synchronized (obj) { // 代碼塊 } obj 為同步監視器,以上代碼的含義為:線程開始執行同步代碼塊(中的代碼)之前,必須先獲得對同步監視器的鎖定。 代碼塊中的

JAVA方法 字串unicode的相互轉換

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

SpringBoot專案開發(二十三):Ajax Post資料到控制器方法,引數自動轉換為物件

往往有這麼個需求,在新增使用者時,頁面以 ajax 方式把 user 物件資料提交到後臺控制器上, 控制器方法中的引數以物件形式進行接收,這時就需要把json字串自動轉換為物件 在SpringBoot或SpringMvc中,有@ResponseBody 、@RequestBody 兩

ajax 的 async 的同步非同步

async 英語釋義為 “非同步,非同步”。在專案中使用時總是忽略了它的存在。 當 async 是設定為 “true(預設狀態)”,即表示非同步進行,在 $.ajax執行時,也會同時執行$.ajax ->url 中的東西(想當於有兩個執行緒同時進行)。 當 async 是設定

Java NIO/BIO 淺談 同步/非同步阻塞/非阻塞

在我們瞭解Java NIO/BIO的網路通訊之前,我們先了解一下常用的阻塞/非阻塞模型以及同步/非同步的概念 一、阻塞和非阻塞 從簡單的開始,我們以經典的讀取檔案的模型舉例。(對作業系統而言,所有的輸入輸出裝置都被抽象成檔案。)在發起讀取檔案的請求時,應用層會呼叫系統核心的I/O介面。

在伺服器端判斷request來自Ajax請求 非同步 還是傳統請求 同步

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

同步非同步協成

同步|非同步: 執行緒的三種狀態:   1.就緒   2.執行   3.阻塞阻塞和非阻塞描述的是執行的狀態阻塞 :遇到了IO操作,程式碼卡住,無法執行下一行,CPU會切換到其他任務非阻塞 :與阻塞相反,程式碼正在執行(執行狀態) 或處於就緒狀態同步和非同步指的是提交任務的方式同步 :提交任務必須等待任務完成

同步非同步阻塞、非阻塞

UNIX下可用的I/O模型: 阻塞式I/O; 非阻塞式I/O; I/O複用(select,poll,epoll…); 訊號驅動式I/O(SIGIO); 非同步I/O(POSIX的aio_系列函式); 阻塞式I/O模型:預設情況下,所有套接字都是阻

Linux訊號 四 非同步等待訊號同步等待訊號介面

訊號的同步等待和非同步等待區別就是訊號處理函式的執行與否,非同步等待是訊號處理函式已經執行了,同步等待是訊號處理函式還沒有執行。 非同步等待介面:pause() 和 sigsuspend() 1. pause() /** * 等待訊號 * pause()函式將呼叫程序/執行緒掛起,使

setState非同步同步進階

如何使用setState 在 React 日常的使用中,一個很重要的點就是,不要直接去修改 state。例如:this.state.count = 1是無法觸發 React 去更新檢視的。因為React的機制規定,一個state的更新,首先需要呼叫 setState 方法。 this.setState({

Node.js模擬發起http請求從非同步同步的5種方法

使用Node.js模擬發起http請求很常用的,但是由於Node模組(原生和第三方庫)提供裡面的方法都是非同步,對於很多場景下應用很麻煩,不如同步來的方便。下面總結了幾個常見的庫API從非同步轉同步的幾種方法。模組有:request, request-promis

將已經存在的非同步請求callback轉換同步promise

由於js是單執行緒執行,為防止阻塞,會有很多非同步回撥函式callback,巢狀層次多了,可讀性就差了很多。隨著社群的發展,出現了promise。我們來將一些常見的回撥函式做修改,變成promise的鏈式呼叫,簡潔,清晰明瞭。 先理解一點點概念。 每個promise都有三個狀態。pending、Fulfill

php xml陣列轉換問題,封裝方法及字串替換

/** * [將xml轉為array] * @param string $xml xml字串或者xml檔名 * @param bool $isFile 傳入的是否是xml檔名 * @re