Ajax 中止Google可视化查询

Ajax 中止Google可视化查询,ajax,google-visualization,Ajax,Google Visualization,使用,我需要找到中止请求的方法。我通常设置查询: var qMyQuery=new google.visualization.Query('http://myurl'); qMyQuery.send(queryDoneCallbackFunctionName); 我尝试了.abort方法,但这只适用于定期刷新数据。我也尝试过设置qMyQuery=null,但没有任何效果 我不能简单地丢弃返回回调的数据。。。这一点是为了在用户请求时停止服务器上非常长的查询 有什么建议吗?谢谢。如果您只是想在客户

使用,我需要找到中止请求的方法。我通常设置查询:

var qMyQuery=new google.visualization.Query('http://myurl');
qMyQuery.send(queryDoneCallbackFunctionName);
我尝试了
.abort
方法,但这只适用于定期刷新数据。我也尝试过设置
qMyQuery=null
,但没有任何效果

我不能简单地丢弃返回回调的数据。。。这一点是为了在用户请求时停止服务器上非常长的查询


有什么建议吗?谢谢。

如果您只是想在客户端取消Ajax请求,您应该看看这个问题

但是为了节省服务器资源,您必须发出一个新的AJAX请求,同时消耗客户端和服务器中的另一组资源

这种中止请求的服务器端实现需要验证将存储在共享位置(如数据库)中的标志


您必须仔细计算或衡量这种实现的成本效益

最简单的解决方案似乎是使用自定义XHR对象jQuery、ExtJS手动向google发送请求,然后,您将拥有完全的权限,可以通过按钮单击处理程序或任何您想要的方式,根据用户的命令取消请求

谷歌的可视化查询模块确实允许它在chart DIV中自动向用户显示错误,但除此之外,您不能只使用自己的XHR对象吗


要么构建自定义XHR对象,要么使用jQuery、ExtJS Ajax或类似的工具。

如果您的目标是停止冗长的查询,为什么不使用setTimeout方法来限制您愿意等待的时间?@oli,如果用户在我的应用程序中单击“取消”按钮,我想取消查询,不自动基于特定时间。您是否尝试过qMyQuery.abort()?我在这里看到了:。@Nathan,是的,正如我的帖子所说。abort方法只中止间隔刷新,而不是一次性查询。我不能使用此方法,因为我无法从Google查询对象获取基础xhr对象。如果无法获取xhr对象的请求,并且API没有提供任何取消方法,请参见@Brad,因为您无法取消请求。当然,除非你重写API。是的,这就是我最终可能要走的路线。没有办法在Google查询对象中找到XHR对象并向其添加第二个中止方法?我不能用它的原型做些什么?你可以,但是当谷歌更新他们的API时会发生什么呢?潜在的破坏性变化。如果您可以查看源代码,那么这将很容易。如果没有,我就不推荐了。举个例子会很有帮助:)@Christopher Manning,你想举个例子来覆盖XHR对象的原型吗?@dmf85,这会很有帮助,因为我看不出如何覆盖google可视化查询模块生成的请求