[問題] 暫停javascript程式

看板Ajax作者時間10年前 (2015/04/20 16:22), 編輯推噓0(007)
留言7則, 2人參與, 最新討論串1/1
目前我正在做一個project, 會用到google direction API 以及geometry library (主要是用裡面的某一個islocatededge function) 大概介紹一下project目的: 跑迴圈, 每次送一對起終點, 然後用directionservice算route 然後用isLocationOnEdge來看是否我在意的一些路口有在route上 因為google在query數量上有限制, 因此我每兩秒才送一個query (我目前用settimeout) 但發現程式執行到大約270左右個query時, gogole就開時回傳over limit query的status 因此想要動態延長等待的時間, 但因為我的迴圈中的setimeout是類似這樣做 function doSetTimeout(a,b) { setTimeout(function() { getRoute(a, b); //抓路口是否在route上的function }, times*2000); times++ } 感覺像是一開始就把query都ready to send out, 只是隔兩秒才會真正發送出去 請問有辦法動態調整等待時間嗎? 或是讓程式暫停 在if (status == google.maps.DirectionsStatus.OVER_QUERY_LIMIT) 時 我查過似乎javascript沒有這種功能?) 或是有其他更好的作法呢? 謝謝! ˇ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 68.40.198.253 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1429518128.A.186.html

04/20 17:18, , 1F
做成一個query list阿,然後用另一個setInterval定時執
04/20 17:18, 1F

04/20 17:19, , 2F
行,只要列表裡有東西就執行這樣
04/20 17:19, 2F

04/20 17:30, , 3F
然後如果回傳值有問題,就暫停住,等個幾秒再繼續
04/20 17:30, 3F


04/20 17:42, , 5F
如果要async還要再做些手腳,這個是async task的版本
04/20 17:42, 5F

04/20 17:42, , 6F
更正sync task
04/20 17:42, 6F

04/30 23:44, , 7F
callback + setTimeout可以達成,但要像alert停住不行
04/30 23:44, 7F
文章代碼(AID): #1LDBSm66 (Ajax)
文章代碼(AID): #1LDBSm66 (Ajax)