在.js文件上進行開發時,我只想刷新該文件而不是整個頁面以節省時間。任何人都知道這方面的技術?有沒有辦法在開發時刷新JavaScript包含?
回答
下面是創建一個新的腳本元素的功能。它附加一個遞增的整數,以使腳本的URL唯一(如Kon建議的)以強制下載。
var index = 0; function refreshScript (src) { var scriptElement = document.createElement('script'); scriptElement.type = 'text/javascript'; scriptElement.src = src + '?' + index++; document.getElementsByTagName('head')[0].appendChild(scriptElement); }
然後在Firebug的控制檯,您可以稱呼其爲:
refreshScript('my_script.js');
你需要確保該指數本身並不是劇本正在被重新裝入的部分!
Firebug Net面板將幫助您查看腳本是否正在下載。響應狀態應該是「200 OK」而不是「304 Not Modified」,並且您應該在查詢字符串中看到索引
Firebug HTML面板將幫助您查看script元素是否被添加到頭部元素
更新:
下面是使用時間戳,而不是一個索引變量的版本@davyM表明,它是一個更靈活的方法:
function refreshScript (src) { var scriptElement = document.createElement('script'); scriptElement.type = 'text/javascript'; scriptElement.src = src + '?' + (new Date).getTime(); document.getElementsByTagName('head')[0].appendChild(scriptElement); }
阿列克謝的點也非常-stated。
如果您正在討論您的.js文件的客戶端/瀏覽器緩存的不幸情況,那麼您可以簡單地版本化.js文件。可以:
- 重命名js文件本身(不是優選的)
- 更新包括線引用yourfile.js 1,yourfile.js 2等。因此強制瀏覽器來請求?服務器的最新版本。 (首選)
不幸的是,您必須刷新網頁才能看到對JavaScript進行的編輯。我不知道如何實時編輯JavaScript,並且無需刷新即可看到這些編輯效果。
您可以使用Firebug插入新的 JavaScript,並對DOM對象進行實時更改;但是你不能編輯已經運行的JavaScript。
我建議你爲此使用Firebug。 看到這個視頻,它幫了我很多。
http://encosia.com/2009/09/21/updated-see-how-i-used-firebug-to-learn-jquery/
如果我正在使用.js文件中的多個函數進行調整,這並不理想。 – Susan 2011-03-12 20:16:44
如果你只是厭倦了填寫表單而開發只是使用表單恢復擴展像這樣https://addons.mozilla.org/ru/firefox/addon/lazarus-form-recovery/
- 1. css和javascript沒有包含在刷新
- 2. 有沒有辦法刷新JavaScript中的窗口屬性?
- 3. 有沒有辦法來設置開發
- 4. 有沒有辦法刷新一個PHP包含文件而不刷新整個頁面?
- 5. 有沒有辦法在nohup任務開始時發生通知?
- 6. 有沒有辦法使用Twisted重新發送UDP數據包?
- 7. 有沒有辦法在Python中自動刷新/ fsync stderr?
- 8. 有沒有辦法刷新正在運行的進程
- 9. 有沒有辦法讓Eclipse在後臺不刷新工作區?
- 10. 有沒有辦法在JFace中刷新主嚮導?
- 11. 有沒有辦法檢測更新面板刷新完成?
- 12. 有沒有辦法維護滾動條的位置在頁面刷新(無Javascript)?
- 13. 有沒有辦法在Sequelize.js中包含JSONB中包含的屬性?
- 14. 有沒有辦法在APNS Push消息中包含本地時間和時區
- 15. 有沒有辦法在.jar中包含VM參數?
- 16. 有沒有辦法在春季動態包含bean?
- 17. 有沒有辦法包含在dymanic SQL中去?
- 18. 有沒有辦法在PHP中包含每個人的文件?
- 19. 有沒有辦法看到UDID包含在構建中?
- 20. 有沒有辦法在錯誤日誌中包含useragent?
- 21. 有沒有辦法在Scaladoc中包含數學公式?
- 22. CakePHP:有沒有辦法在hasAndBelongsToMany的定義中包含變量?
- 23. 有沒有辦法在armv7項目中包含armv6庫?
- 24. 有沒有辦法在Django模板中包含多個javascript文件?
- 25. Javascript表刷新沒有jquery
- 26. 有沒有辦法在UPDATE查詢中包含不可更新的查詢?
- 27. 有沒有辦法在javascript中換行?
- 28. 有沒有辦法在拖拽可排序項目時刷新排序?
- 29. 有沒有辦法在進入前景時強制全局刷新視圖?
- 30. 有沒有辦法在執行JavaScript時回顯每一行JavaScript?
我會使用時間(新日期()。getTime())而不是索引(刪除全局變量的需要)。如果你刷新相同的腳本,你甚至可以創建一個書籤。 – 2011-03-12 21:17:37
@davyM,好主意。我會更新。 – inkfist 2011-03-12 21:24:55
+1。請注意,重新加載腳本不會更新已加載的evry對象。您可能遇到使用舊版本功能(即回調/關閉/存在對象)的有趣問題。 – 2011-03-12 22:01:33