0

例如

假设我们在一个类别中有 1000 种产品。我们想过滤这些产品。

当我们使用 json 过滤产品时。每次我们需要对数据库运行单独的查询。

我们想知道是否有人知道是否可以显示预加载产品表。例如预加载栏:初始化搜索 (0 - 100%)

所以整个系统只会在加载时初始化一次,然后我们希望搜索结果可以是即时的。

不幸的是,调整客户服务器对我们来说并不是一个真正的选择,所以希望这里的人可能有更好的建议

提前致谢!

4

2 回答 2

0

在 PHP 端,您可以将记录预加载到memcache存储桶之类的东西中。

不过,我强烈怀疑问题出在数据库查询上。json 请求很可能需要这么长时间。

当然可以预加载所有值(即在一个大请求中获取它们)。您没有提供有关您的系统的任何详细信息,但它可能只是一个大的 json 请求。

我没有看到任何简单的方法来实现 Ajax 请求的进度条。也许一个简单的“加载”动画也可以。

您可能必须使用某种本地存储来跨页面保存数据,以使其有意义。为此,请参阅此问题。

于 2010-07-07T21:33:04.110 回答
0

1000 个数据集查询起来并不多,但存储客户端的数量却很大。但是..回答你的问题:

Javascript 可以创建对象数组。比方说

<script type="text/javascript">
var products = new Array()
products[0] = {name:'First', price:29.99};
products[1] = {name:'Second', price:29.99};
products[2] = {name:'Third', price:29.99};
</script>

...通过 php 创建这些。此外,您可以创建一个函数 product(name, price) 而不是 {...} 然后调用products[0] = new product("first", 29.99);

完成此设置后,所有信息都存储在客户端浏览器中。所以现在您可以仅通过 javascript 使用搜索/过滤器。加载栏可以通过 jquery-ui 巧妙地完成。搜索涉及数组循环。如果您有多个类别可以事先分开 - 您可以创建不同的数组,而不是将所有内容存储在 products 数组中。

祝你好运!

于 2010-08-19T19:28:31.257 回答