因此,當eval(數據)完成時,您將如何設置回調?是否可以向eval(數據)添加回調;?
4
A
回答
7
Eval不是異步的,所以你不需要回調。把你的函數調用放在下一行。
您正在執行的腳本可能會執行一些異步操作,在這種情況下,您需要解析JS,找到異步代碼並向其添加回調(以字符串形式)。
最好儘量避免eval。這幾乎從來都不是問題的正確解決方案。
1
只需將要在回調中執行的代碼放入要評估的數據中即可。當然,如果在評估數據中有一些異步運行的動態生成函數,則會遇到問題。
+0
我試圖超出'data' – Trip 2010-09-29 15:28:23
+1
爲什麼?你可以用用戶數據+ ='my_function();' – 2010-09-29 15:31:35
1
eval(data)
是一個阻塞呼叫。您只需在eval()
調用後放置「回調」代碼,並在eval()
完成後執行。
相關問題
- 1. 是否可以向ObjectifiedElement實例添加任意數據?
- 2. 是否可以添加類?
- 3. 是否可以在Android上向SharedPreferences添加數組或對象
- 4. Nginx proxy_pass:是否可以向URL添加一個靜態參數?
- 5. 是否可以向@Query參數添加通配符?
- 6. 每次調用構造函數時,是否可以向arrayList添加項目?
- 7. 是否可以向數據透視表(Excel Interop)添加手動分頁符?
- 8. quartz.net - 我可以不向JobExecutionContext添加回調委託方法嗎?
- 9. 是否可以在api調用表單數據中添加文件?
- 10. 向Redux Reducer添加回調
- 11. 是否可以添加自定義的元數據文件
- 12. 是否可以將模板添加到數據類的getter/setter?
- 13. 是否可以在PHP中動態添加數據成員?
- 14. 是否可以在Google的數據表中添加鏈接?
- 15. 是否可以將數據添加到DataTable事件?
- 16. 是否可以將自定義數據添加到HealthKit?
- 17. 是否可以同時在一列中添加多個數據?
- 18. 向庫中添加回調函數
- 19. 是否可以向此SQL語句添加JOIN?
- 20. 是否可以向GAEUnit添加代碼覆蓋支持?
- 21. 是否可以向UIDynamicAnimator添加多個UIGravityBehaviors?
- 22. 是否可以嚮導航抽屜按鈕添加聲音?
- 23. 是否可以向樹節點添加值?
- 24. 是否可以向Microsoft Access添加動畫
- 25. 是否可以向Visual Studio添加HTML5驗證?
- 26. 是否可以在Firebase中向孩子添加密碼?
- 27. 是否可以向csproj文件添加註釋?
- 28. 是否可以向Vista/7 taskmgr.exe添加功能?
- 29. 是否可以向PHP添加新功能?
- 30. 是否可以向用戶定義類型添加說明?
對於eval(data)來說,這是一個很好的選擇,因爲我在加載js後調用異步請求。但是如果我清理了我的XSS,還有什麼需要擔心的嗎?你有什麼建議嗎? – Trip 2010-09-29 15:33:56
eval很難調試,有確定範圍的問題,而且速度很慢。我不能提出一種替代解決方案 - 我不知道這個問題,只有你認爲可以解決的問題。 – Quentin 2010-09-29 15:37:17
+1爲「最好避免評估eval」。 Eval可能會產生一堆問題(包括安全風險,使代碼縮小等非常困難)。 – JasCav 2010-09-29 15:42:58