gpt4 book ai didi

asp.net-mvc - jQuery UI 自动完成插件 - 问题

转载 作者:行者123 更新时间:2023-12-01 06:06:55 25 4
gpt4 key购买 nike

我有一个 ASP.NET MVC 3 Web 应用程序 (Razor),以及一个带有 jQ​​uery UI AutoComplete 插件 (v1.8) 的特定 View 。

这是我当前的设置:

$('#query').autocomplete({
source: function (request, response) {
$.ajax({
url: "/Search/FindLocations",
type: "POST",
dataType: "json",
data: { searchText: request.term },
success: function (data) {
response($.map(data, function (item) {
return { name: item.id, value: item.name, type: item.type }
}))
},
error: function (xmlHttpRequest, textStatus, errorThrown) {
// don't know what i should do here...
}
})
},
select: function (event, ui) {
$.get('/Search/RenderLocation', { id: ui.item.name }, function (data) {
$('#location-info').html(data);
});
},
delay: 300, minLength: 3
});

自动完成功能会返回世界各地的位置,与 Google map 自动完成功能基本相同。

这是我的问题:

1) delayminLength 的建议设置是什么?保留默认值吗?

2) 我考虑过将 [OutputCache] 放在 Controller 操作上,但我看起来好像插件会自动进行缓存?这是如何运作的?它会将结果存储在 cookie 中吗?如果是的话什么时候到期?是否建议使用任何额外的缓存?

3) 我注意到,如果我输入某些内容,当 AJAX 请求被触发时,如果我输入其他内容,对话框会立即显示第一个结果,然后显示第二个结果。我可以理解为什么,但这会让用户感到困惑(考虑到 AJAX 请求可能需要 1-2 秒),但我正在考虑在 $.ajax 中使用 async: false code> 防止多个请求的选项 - 这是糟糕的设计/用户体验吗?

4) 您能否建议对我的上述设置进行任何其他更改以提高性能/可用性?

最佳答案

1) 这实际上取决于您的使用情况和数据。

2) 您应该使用[OutputCache]。如果插件上发生任何缓存,则只会针对每个用户,如果您在 Controller 操作级别使用缓存,它将为所有用户缓存一个。 (同样,根据您的使用情况,这实际上可能很糟糕,但通常这样做是好的)

3)由于缺乏上下文,这个问题也有点困难。如果 ajax 请求是 1-2 秒并且没有办法缩短这个时间,那么您确实应该有一个相当大的延迟,以便用户在输入长单词时不会发送很多请求(如果他们输入速度很慢)。

4) 听起来您需要查看您的/search/FindLocations 方法,看看可以在哪里进行缓存或首选项改进。让我们看看您在这里的代码,我可以尝试提出更多建议。

关于asp.net-mvc - jQuery UI 自动完成插件 - 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4823237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com