有没有办法在开发时刷新javascript包含?

时间:2011-03-12 19:47:50

标签: javascript

在.js文件上进行开发时,我只想刷新该文件而不是整个页面以节省时间。有人知道任何技术吗?

5 个答案:

答案 0 :(得分:9)

这是一个创建新脚本元素的函数。它附加一个递增的整数,以使脚本的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面板将帮助您查看脚本元素是否附加到head元素。

更新:

这是一个使用时间戳而不是索引变量的版本。正如@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);
}

阿列克谢的观点也很明确。

答案 1 :(得分:1)

我建议你为此目的使用Firebug。 看到这个视频,它对我帮助很大。

http://encosia.com/2009/09/21/updated-see-how-i-used-firebug-to-learn-jquery/

答案 2 :(得分:0)

如果您正在谈论.js文件的客户端/浏览器缓存的不幸情况,那么您可以简单地对.js文件进行版本控制。你可以:

  • 重命名.js文件本身(不是首选)
  • 更新include行以引用yourfile.js?1,yourfile.js?2等。从而强制浏览器从服务器请求最新版本。 (优选的)

答案 3 :(得分:0)

不幸的是,您必须刷新网页才能看到对JavaScript的修改。我不知道如何在“实时”中编辑JavaScript,并且无需刷新即可查看这些编辑效果。

您可以使用Firebug插入 new JavaScript,并对DOM对象进行实时更改;但您无法编辑已运行的JavaScript。

答案 4 :(得分:0)

如果您只是厌倦了在开发时填写表单,只需使用表单恢复扩展程序https://addons.mozilla.org/ru/firefox/addon/lazarus-form-recovery/