作者hcl012 (怪龍-卡西歐魯)
看板Ajax
標題[問題] 關於JavaScript的alert
時間Sun Apr 1 16:48:57 2012
下面的網頁是我寫的程式
http://hcl012.my-life02.net/DV/test8_oscillation.htm
按下「generate the route」後會在地圖上生成兩個地點間的路線
並且在按下drive後會開始在右邊的區塊模擬駕駛街景
但是如同目前各位看見的
車子的位置會因為不明原因一直前後晃動
查了很久一直都沒有發現原因
但是,現在只要我在每次車子前進的程式那邊加上一行很單純的
alert('move');
像是下面這個連結這樣
http://hcl012.my-life02.net/DV/test8_oscillationWithAlert.htm
很神奇的整個程式都可以正常運作了(除了要一直把alert點掉以外)
因為這個Bug的原因完全無法查明
所以想問一下,Javascript有沒有能夠自動生成alert然後點掉的語法
或是可以模擬使用alert語法時背後處理的東西,但是不跳出提示是窗的方法呢?
先感謝各位的回應了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 68.99.87.223
1F:→ charlesdc:你加上alert去並沒有解決這個問題,這問題是因為連續路 04/01 17:23
2F:→ charlesdc:上的點並不一定是鄰近的點! 很詭異吧? 但是如果你有寫過 04/01 17:24
3F:→ charlesdc:自動顯示鄰近點的街景跟對應位置你就知道我說的了 04/01 17:25
4F:→ charlesdc:我的猜測是當初在建製街景時因為開的路線不一樣所以有些 04/01 17:26
5F:→ charlesdc:路線交界口並沒有做聯繫所以造成斷開的現象,但這問題在 04/01 17:26
6F:→ charlesdc:一般的google map上並不會發現! 很神奇吧 04/01 17:27
原來還有這樣的狀況(汗)
不過在試了幾個測資後發現就算是不同區域的街道
程式的運行還是會有問題
所以這個程式的問題應該不在這裡
之後會特別注意這種狀況的,感謝回應
7F:→ TonyQ:應該是時間差的問題,這是設計問題。 04/01 17:39
8F:→ TonyQ:我說如果加了alert 就會運作的前提下。 04/01 17:40
我想是因為listener觸發事件導致某些變數被覆蓋掉之類的問題
想試著放慢每步程式的執行時間確認問題在哪
想請問一下JavaScript裡面有類似sleep這類的函數可以用嗎?
setTimeout感覺好像只是把某個指令放到一段時間後執行
並沒有把整個程式暫停下來的樣子?
※ 編輯: hcl012 來自: 68.99.87.223 (04/01 19:05)
9F:推 mrbigmouth:有alert的狀況下問題並沒有解決+1 04/01 18:19
終於找到問題所在了
用兩個很簡短的程式來表達我碰到的問題
http://hcl012.my-life02.net/DV/linktest.html
http://hcl012.my-life02.net/DV/linktestfail.html
這兩個程式的作用都是很單純的設定一個街景然後沿著街景上的連結移動
唯一的差別是getLink()這個method的位置
失敗的程式裡面是直接在設定好街景後就馬上取得連結
但是成功的程式裡面,是把取得連結的程式和設定街景的程式分開來寫
為什麼會有這樣的差別,官方說明文件上沒有講所以無法得知
(本來以為是設定panorama需要時間的關係,但是我試著在中間空了幾秒都沒用)
會發現這個特徵是幾十個小時下來不眠不休的硬試的結果冏>
總之,
設定街景的程式和取得該街景連結的程式不能寫在一起
只有這點是確定的
希望這個答案以後有機會幫到遭遇同樣問題的板友
※ 編輯: hcl012 來自: 68.99.87.223 (04/03 12:36)
10F:推 charlesdc:正確來說你是遇到了物件還沒被"初始化"後你就去使用該物 04/05 23:39
11F:→ charlesdc:件的方法 :D 04/05 23:39