作者kong0107 (阿空)
看板Ajax
标题[问题] 同时存取多个JSONP时的先後判断
时间Sun Jul 14 03:01:06 2013
各位好,我第一次实做JSONP。
大抵就是将之理解为XSS,甚至可以跟JSON无关。
目前的困境是,我会在短时间(连续执行)加入两个<script src />
但是其执行结果却不是依序执行,而是看谁先下载完就先执行
(参考
http://goo.gl/tZPXe :
When inserting a script dynamically, the non-blocking download begins
immediately. The script executes as soon as it is downloaded completely.
In most browsers,
the order of execution is not guaranteed
)
但我就是要区分这两者,故来此询问应怎麽做才好..
举例而言,我会同时在DOM中插入:
<script src="/id/NTHU?callback=show"></script>
<script src="/id/NCTU?callback=show"></script>
然後依序应该会回传
show && show({"nick":"114"});
show && show({"nick":"113"});
问题是:我要怎麽区分113是NTHU还是NCTU?
目前已知如果能动server端的话,可以在JSON中多插入一个key-value pair
比方说回传:
show && show({"nick":"114", "request":"/id/NTHU?callback=show"});
也就是把网址(或其他可辨识的资讯)原封不动的传回来
但偏偏server端不是我控制,所以算是不能用
另一个想到的方式就是自己写个client端的queue
如果有同时插入多个JSONP需求
那仍然一次只新增一个<script src />,剩下的就排进queue里,
而callback function则会再把下一个<script src />加进DOM
但这样如果有四、五个以上的需求,或是server回传需要一秒以上的话就会等很久..
请问大大们都使用甚麽样的机制解决这个困境呢?
--
╭ ╭ ╭ ╭╮╭╮http://kong0107.blogspot.com/
│ Υ ╪ ╭─╮ ╭─╮ ╪ ││││ ╮ ╮ ╭── Υ ╭─╮
│ │ │ ╞═╛ │ │ │ │╰╯│ │ │ ╰─╮ │ │
╰─╯ ╧ ╯ └─╯ ╘═╛ ╯ ╯' '
╰ ╰─╯ ──╯ ╧ └─╯
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 58.114.216.61
1F:推 waneblade:用jquery.ajax去request不同来源 就有各自的callback 07/14 23:28
2F:→ grence:script.onload, 久没用,记得跨浏览器有些眉角 07/14 23:46
3F:→ kong0107:喔喔 感谢两位回应~ 07/16 23:08