[問題] 同時存取多個JSONP時的先後判斷

看板Ajax作者 (阿空)時間12年前 (2013/07/14 03:01), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串1/1
各位好,我第一次實做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

07/14 23:28, , 1F
用jquery.ajax去request不同來源 就有各自的callback
07/14 23:28, 1F

07/14 23:46, , 2F
script.onload, 久沒用,記得跨瀏覽器有些眉角
07/14 23:46, 2F

07/16 23:08, , 3F
喔喔 感謝兩位回應~
07/16 23:08, 3F
文章代碼(AID): #1HuQFrP5 (Ajax)
文章代碼(AID): #1HuQFrP5 (Ajax)