我试图每隔3秒从服务器更新一个值,但我对以下代码有一个非常奇怪的行为:
PHP函数
<script>
function refreshLocation() {
try {
<?php
$loc = getLocation('someToken', 'someID');
?>
pos = [<?php echo '"'.implode('","',$loc ).'"' ?>];
pos[0] = parseFloat(pos[0].replace(",", "."));
pos[1] = parseFloat(pos[1].replace(",", "."));
console.log("Loc:" + pos[1] + " : " + (pos[0]));
}
catch(err) {
}
setTimeout(refreshLocation, 3000);
}
</script>
Javascript电话:
{{1}}
问题是,无论服务器上的值如何变化,getLocation函数总是返回与第一次执行时相同的值。只刷新整个页面会给出一个新值。 我看不出问题,我无法找到令人满意的解决方案。 PHP和javascript有问题我没有意识到吗?
答案 0 :(得分:1)
您是否使用过第三方Web服务它们可能可以管理具有相同参数和域的相同请求的缓存。
我的意思是,如果您可以使用相同的参数调用API,并且相同的域服务提供商会返回您在第一次调用时缓存的数据。
您需要通过&#34; 缓存控制:无缓存&#34;在cUrl调用的标题中
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Authorization: Bearer $key",
"Cache-Control: no-cache",
));