<script
type="text/javascript"
src="http://gdata.youtube.com/feeds/api/videos?q= Nas&max-results=8&orderby=relevance&alt=json-in-script&format=5&callback=showMyVideos2">
</script>
当我更改搜索查询时,我必须刷新页面才能看到它。这是为什么?我需要AJAX吗?为什么呢?
由于
答案 0 :(得分:0)
这里只是一个疯狂的猜测:您说如果结果发生变化但您重新加载加载脚本文件的页面,则它们不会立即更改(立即)。这是预期的,因为浏览器可以缓存脚本文件。强制刷新可能会强制重新加载脚本文件,因此问题就会消失。
查看响应标头输出(例如使用http://web-sniffer.net/之类的内容)并注意从服务返回的脚本文件的缓存策略指定最大年龄为300秒:
Cache-Control: private, max-age=300, no-transform
如果您确实需要即时更新而不是每5分钟一次并且您的页面是由服务器端应用程序生成的,那么您可以通过在脚本URL的末尾添加一些不重要的数据来解决此问题(例如,随机数)或者GUID)因此每个URL都是唯一的,不会从浏览器缓存中加载。看起来服务允许这样:
http://gdata.youtube.com/feeds/api/videos?q= Nas&amp; max-results = 8&amp; orderby = relevant&amp; alt = json-in-script&amp; format = 5&amp; callback = showMyVideos2&amp; 987654321
http://gdata.youtube.com/feeds/api/videos?q= Nas&amp; max-results = 8&amp; orderby = relevant&amp; alt = json-in-script&amp; format = 5&amp; callback = showMyVideos2&amp; 123456789
注意每个URL末尾的额外参数,但两者似乎都成功返回相同的内容。