在.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