【发布时间】:2012-02-29 22:22:30
【问题描述】:
可能重复:
Making sure a web page is not cached, across all browsers
我正在开发一个连接到 dojo.store.Memory 的简单 dojo 组合框 (dijit.form.ComboBox)。我正在使用最新的 Netbeans 和 Glassfish 设置以及 Firefox 10。我的问题是,当我更改或注释掉与组合框相关的代码时,刷新网页时不会显示更改。我尝试过清理/构建、重新运行等,但注释掉代码似乎无济于事。 Firefox 似乎正在运行页面的缓存版本,而不是呈现我所做的最新代码更改。我不想每次刷新页面时都清除浏览器缓存。 (我最终想要做的是决定何时打开和关闭自动完成功能。)有什么想法吗?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojo/dojo.js" type="text/javascript" ></script>
<script type="text/javascript">
dojo.require("dijit.form.ComboBox");
dojo.require("dojo.store.Memory");
var myBox, store;
dojo.ready(function(){makeComboBox();});
function makeComboBox(){
store = new dojo.store.Memory({
data: [
{name:"Alabama", id:"AL"},
{name:"Alaska", id:"AK"},
{name:"American Samoa", id:"AS"},
{name:"Arizona", id:"AZ"},
{name:"Arkansas", id:"AR"},
{name:"Armed Forces Europe", id:"AE"},
{name:"Armed Forces Pacific", id:"AP"},
{name:"Armed Forces the Americas", id:"AA"},
{name:"California", id:"CA"},
{name:"Colorado", id:"CO"},
{name:"Connecticut", id:"CT"},
{name:"Delaware", id:"DE"}
]
});
myBox = new dijit.form.ComboBox({
id: "stateSelect",
name: "state",
//value: "Alabama",
//store: store, <-- the box is still connected to the store,
<--even if I comment it out
searchAttr:"name"
}, "stateSelect");
//myBox.set("autoComplete", "false"); <-- this doesn't work either
}
</script>
<div id="myDiv" >
<input id="stateSelect" >
<p><button onClick="alert(dijit.byId('stateSelect').get('value'))">get value</button></p>
</div>
【问题讨论】:
-
如果您有缓存问题,请发送一些标头,以便 Firefox 知道是否缓存您的页面以及缓存多长时间
-
@giorgio 我添加了标题...
-
对不起,我的意思是,将一些标头发送给 firefox,而不是给我 :) 但您可能的解决方案可能是添加这个:
<META HTTP-EQUIV="CACHE-CONTROL" content="NO-CACHE"> -
@giorgio 你对你在说什么有一个很好的参考吗?我在这里查看developer.mozilla.org/en/HTML/Element/meta,但没有看到“缓存控制”的设置。
标签: javascript firefox netbeans dojo