作者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