iT邦幫忙

5

Ajax...非同步...如果拿掉了『非同步』..那Ajax還算什麼?

環境:ASP.Net WebForm Application 4.0 + SQL Server 2008

今天,我們家的實習生很認真地寫了一串讀取幣值匯率的程式
只是呢,連動都不會動....
因為呢...『她』用asp.net button control,然後用jquery去註冊click事件..
她抱怨著....「怎麼ajax都不會執行...L哥...你幫我看一下啦!」
美女這麼說了..當然得去幫忙抓點虱子跳蚤什麼的....
看完程式...我..苦笑...
今天,我們家的實習生很認真地寫了一串讀取幣值匯率的程式
只是呢,連動都不會動....
因為呢...『她』用asp.net button control,然後用jquery去註冊click事件..
她抱怨著....「怎麼ajax都不會執行...L哥...你幫我看一下啦!」
美女這麼說了..當然得去幫忙抓點虱子跳蚤什麼的....
看完程式...我..苦笑...
為什麼?
她呢,首先用jquery ajax去抓某網站的匯率api資料,回傳資料是json
然後呢...她自已寫了一個asp.net webservice取把匯率資料更新..
這麼看...好像沒什麼問題...
問題是...
她在抓取匯率的網頁上...取得匯率資料後,用js foreach迴圈,逐筆使用ajax的非同步方式,呼叫webservice更新資料....
最後...同時要求本頁面的資料必須與資料庫更新....

她的問題是:

  1. 為什麼...foreach迴圈內的ajax...不會一個個排隊逐一執行完畢....
  2. 為什麼...都用了window.reload...還載不到『新的』資料

後來...
我說:

  1. 如果你不想改變妳的作法...請在更新資料的jauery ajax上,加上async: false
    讓資料一個個更新完畢吧
  2. 只是這樣做的效能很差...妳的ajax要送出一大堆的request...妳既然都用了as.net server control...幹嘛不一次讀取資料,更新完畢後,再更新網頁...這跟window.reload有啥差別?

美眉...一臉疑惑看著我....
美眉:嗯...............不懂
我:哦......好....


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
wiseguy
iT邦超人 1 級 ‧ 2014-02-20 00:35:44

wiselou提到:
美眉...一臉疑惑看著我

這時候就是等待『馱獸化』的階段了 .... 如果外獅佬被成功調教為一頭馱獸,就會開口回應『我來幫妳改好了!』偷笑

外獅佬 iT邦大師 1 級 ‧ 2014-02-20 01:34:49 檢舉

還好...還沒到那程度...落寞

外獅佬 iT邦大師 1 級 ‧ 2014-02-20 01:36:02 檢舉

馱獸階段...早就在20年前進化了(幫女性同學寫/改作業)開心

0
海綿寶寶
iT邦大神 1 級 ‧ 2014-02-20 07:31:05

wiselou提到:
美女這麼說了..當然得去幫忙抓點虱子跳蚤什麼的

美女就去幫忙
宅男就問他天...台灣的大學資訊科系...到底怎麼了?

L哥您有點重女輕男哦
偷笑

鐵殼心 iT邦高手 1 級 ‧ 2014-02-20 11:52:06 檢舉

iT邦幫忙MVPantijava提到:
L哥您有點重女輕男哦

為朋友兩肋插刀讚
為美女插學弟兩刀Orz

外獅佬 iT邦大師 1 級 ‧ 2014-02-21 01:39:25 檢舉

海綿寶誤會了...這兩件事...主角都是她...落寞

0
老鷹(eagle)
iT邦高手 1 級 ‧ 2014-02-20 08:14:55

wiselou提到:
幫忙抓點虱子跳X

噴鼻血

0
總裁
iT邦好手 1 級 ‧ 2014-02-20 08:21:50

糟糕...驚我也不懂....汗

0
賽門
iT邦超人 1 級 ‧ 2014-02-20 08:36:51

美眉用的是少A的JAX....

不得不提醒一下外獅佬:

  1. jauery ajax -> jquery ajax
  2. as.net -> asp.net

難怪人家美眉不懂,因為外獅佬都不教人家在學校教的....失神

總裁 iT邦好手 1 級 ‧ 2014-02-20 08:57:13 檢舉

賽大的意思是美眉不夠A....驚
還是....美眉不只有A...可能是B或C....臉紅

鐵殼心 iT邦高手 1 級 ‧ 2014-02-20 11:53:43 檢舉

能讓外師佬出手的應該是Class D以上吧噴鼻血

外獅佬 iT邦大師 1 級 ‧ 2014-02-21 01:41:18 檢舉

靠...賽大眼力可真是好啊....讚

0
pantc328
iT邦高手 1 級 ‧ 2014-02-20 08:44:40

Ajax...非同步...如果拿掉了『非同步』..那Ajax還算什麼?
你自己都沒回答很清楚了,還Po文
Ajax
A=Async 非同步
j=Java script
a=忘了,自己上網查
x=XML

所以少了A非同步,還是可以用的

0
賽門
iT邦超人 1 級 ‧ 2014-02-20 09:54:38

pantc328提到:
a=忘了,自己上網查

怎麼可以忘了...and...呢?
AJAX=Asynchronous JavaScript and XML...
外獅佬已經說得很清楚了呀~~少了非同步AJAX就不AJAX了...

pantc328 iT邦高手 1 級 ‧ 2014-02-20 10:36:03 檢舉

謝了,背太多專有名詞了,也懶得查
如Simon說的
少了非同步AJAX就不AJAX了…
但還有JAX功能
也就是有JavaScript And XML 可用
但少Asyn 就只有本地端一些功能可用,不如用JQuery 還有J的一些套件

外獅佬 iT邦大師 1 級 ‧ 2014-02-21 01:43:36 檢舉

哈哈...那不如直接做asp.net postback就好了....scriptmanager+updatepanel足以取代jquery

0
外獅佬
iT邦大師 1 級 ‧ 2014-02-21 01:48:15

今天一早...
這位小姐又跑來問..為什麼她的程式跑那麼慢?
L:是啊..你丟出了一堆request...然後要等回應,能不慢?
L:不如...直接postback回去...由server端..去擷取資料,然後更新..最後..顯示在你的頁面上,反正..你最後都做window.reload了..
美眉:嗯..哼?PostBack...是...什麼?
我:你不是正在寫asp.net??!!
暈....

看更多先前的回應...收起先前的回應...

然後你說
『這是我房間鑰匙,下班後好好聊』

iT邦幫忙MVPwiselou提到:
小姐又跑來
L:....上...
美眉:嗯..

噴鼻血毆飛

總裁 iT邦好手 1 級 ‧ 2014-02-21 08:49:01 檢舉

iT邦幫忙MVPwiselou提到:
L:是啊..你丟了....

讚

ajax 加上了同步功能,還是ajax
看來你們的實習生,遇到了 jquery 剛出現時,
讓人最易遇到的麻煩觀念問題
*-- ajax與 asp dot net control 的整合 --*
觀念不懂,很容易出現系統無法控制的情況
寫在 reload,很明顯的,asp dot net control 害了她,導致功能無法完整發揮好
還好在實習,沒人清楚的提點,我想未來她會遇到更多的問題
在觀念不清楚的情況,能把Code寫的這麼多,還算努力,可提拔

我要留言

立即登入留言