【发布时间】:2017-08-28 16:24:58
【问题描述】:
我正在尝试在我的自动完成文本框中加载更多滚动数据 当用户向下滚动时,它将像 分页根据需要加载更多结果。
类似this。
我已经找了很长时间了 发现类似我的问题的问题。
<div class="ui-widget">
<label for="tags">Enter Company Name: </label>
<input id="tags" class="form-control">
</div>
<script>
$( function() {
$( "#tags" ).autocomplete({
source: 'function/all_company_auto.php'
});
} );
</script>
这是我的 php 代码。
<?php
$get_company = "SELECT DISTINCT companies.company
FROM companies
INNER JOIN target_details
ON companies.company_id = target_details.company_id
WHERE companies.company LIKE \"%$company%\"
LIMIT 100 OFFSET 10
";
if($run_company = $conn->query($get_company)){
while($row = $run_company->fetch_assoc()){
$data[] = $row['company'];
}
echo json_encode($data);
}
?>
【问题讨论】:
-
似乎很难证明如此频繁地访问服务器......你不能一次发送所有可能的值吗?
-
@MatthewGoulart 你能解释一下吗?
-
我做了很多假设,但是,与其让您的自动完成框在每次用户向下滚动 x 次时从服务器请求更多值,不如将所有可能的值一次性发送单个请求?这样可以避免无缘无故撞到服务器。 HTTP 请求会产生大量开销,如果可以避免,则应该这样做。
-
@MatthewGoulart 我试过一次加载所有结果。服务器响应太慢了。所以我决定使用限制及其以最佳响应时间工作。所以我想知道是否可以将分页应用为“加载更多”功能。
-
我明白了。有没有可能是其他东西减慢了它的速度?需要有 lot(我的意思是 lot)的值来显着减慢响应速度。
标签: javascript php jquery jquery-ui