【发布时间】:2015-06-30 15:35:19
【问题描述】:
在我的 Web 应用程序中,整个搜索页面都是用 XQuery 编写的。查询不仅查找并显示结果,还将搜索词写入协议文件(在 eXist db 中,这可以通过file:serialize-函数实现)。
但是,编写协议可能需要一些时间。当然,用户不应该受到这种延迟的影响。所以,我想先输出搜索结果,然后更新协议。
我试过把协议函数放在内容返回之后,比如:
return $search_results,localfunction:write_protocol()
(函数localfunction:write_protocol()总是返回空序列()。)
但这不起作用。 $search_results的内容只有在localfunction:write_protocol()完成后才输出。
有什么我可以在这里做的吗? (我知道,这样的事情在 PHP 等更流程化的语言中也存在问题。)
【问题讨论】:
-
如果我理解正确的话,这并不是 XQuery 所特有的。您可以将您的页面分成两个请求,首先返回快速请求,然后让该页面通过 AJAX 查询第二个请求。