我正在尝试加快 MVC Web 应用程序中搜索结果的返回速度。如果用户搜索一个短语,然后直接搜索另一个短语,我想取消原始搜索,或者实际上取消结果的呈现,因为这需要时间。
编辑:搜索框实时搜索,因此如果您输入具有大量结果的内容,例如“the”,然后快速将其更改为更具体的内容,则原始搜索会保留最新的搜索结果。
我最初认为数据库交互是瓶颈(因此我的问题是在此处取消数据库搜索请求),但开销是在部分视图中呈现所有结果:
我SearchContoller
有这种形式:
public ActionResult Search(string query, string time) {
// Go off and do search, returning results
return PartialView("SearchResults", results);
}
如果在Search
第一次渲染时再次使用控制器方法PartialView
,我可以以某种方式取消原来的方法吗?例如,在视图中,如果该标志设置在其他地方,我可以检查一个标志并取消吗?
看法:
@model SearchResultModel
@if (Model.ResultType1.Count > 0) {
<h2>Results 1</h2>
<dl>
<dt>Results:</dt>
@foreach (var result in Model.Results1) {
if (FlagInControllerToStopThis) break; // OR SOMETHING SIMILAR??
<dd> <!--Each result is returned here--></dd>
}
</dl>
}