是否可以使用PHP& amp;预加载整个MyISAM数据集。 JSON?

时间:2010-07-07 21:23:07

标签: php json mysql myisam

例如

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

我们使用json过滤产品。 每次我们需要对DB运行单独的查询。

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

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

不幸的是,调整客户服务器并不是我们的选择,所以希望有人可以提供更好的建议

提前致谢!

2 个答案:

答案 0 :(得分:0)

在PHP端,您可以将记录预加载到memcache桶中。

但是,我强烈怀疑问题是数据库查询。 json请求更有可能需要很长时间。

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

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

您可能必须使用某种本地存储来跨页面保留数据才有意义。为此,请参阅this question.

答案 1 :(得分:0)

1000个数据集的查询量不是很多,但它是存储客户端的重要数量。但是..回答你的问题:

Javscript可以创建一个对象数组。我们说

<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创建这些。也可以代替{...}创建功能产品(名称,价格),然后调用products[0] = new product("first", 29.99);

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

祝你好运!