旧数据使用YQL和Javascript getJSON调用

时间:2017-11-23 15:35:40

标签: javascript json yql

在进行一些搜索后,似乎这类问题影响了许多用户,因此这个问题的答案可以帮助雅虎YQL平台的许多用户。

我本质上的目标是提取存储在Web服务器上的半静态CVS文档,然后在Javascript中解析。半静态意味着CVS文档不会附加到其他条目,而是每个条目都被修改。

使用YQL控制台https://developer.yahoo.com/yql/console/为我提供了对存储在远程服务器上的半静态CVS文件的每次调用的更新数据。我可以修改数据,YQL控制台将成功返回更新的数据。当我提取他们提供的休息查询并简单地粘贴'它进入浏览器窗口,提供的数据对应于我做的第一个查询。当我在Javascript中将查询作为$ .getJSON请求嵌入时:

$。getJSON(" https://query.yahooapis.com/v1/public/yqlq=select%20 *%20from%20csv%20 where%20url%3D' mywebsite.csv'& format = json")。done(function(数据){

我仍然得到过时的数据。如果我切换到不同的Web浏览器或设备,信息仍然过时,这让我觉得它不是本地计算机上的缓存问题。

我认为问题出现在两个方面之一:

1)也许雅虎会缓存查询,只从动态增长的表/文件中获取更新信息

2)我没有正确使用YQL查询。

另外需要注意的是,完全相同的查询结构与Google表单(可以作为CVS导出)完美配合,并且在我使用的动态增长的CVS文档上也能顺利运行现在是复古数据库,需要快速切换到简单的半静态文档。

可以对我的半静态CVS文档起作用的任何想法或修正?

1 个答案:

答案 0 :(得分:0)

这听起来像浏览器缓存问题

尝试在网址中添加时间戳,使每个请求都有唯一的网址,因此浏览器不会有缓存

var params ={
  q : "select%20*%20from%20csv%20where%20url%3D'mywebsite.csv'",
  format: "json",
  _v : Date.now()    
};

$.getJSON("https://query.yahooapis.com/v1/public/yql", params ).done...