缓存网站,以便它不会重新加载

时间:2012-02-05 22:10:28

标签: php html caching dynamic web

我的网站出现了一些问题,因为它正在进行大量的SQL查询,所以它很慢,点击页面上的其中一个元素重新加载。

这是一个例子: Example

第一次打开页面时需要一些时间。然后,当您点击排序选项,如“3Way”,“Over / Under”,“Asian Handicap”等时,它将再次花费相同的时间,因为页面将与left&右列和顶部菜单。

但是,如果您再次单击其中一个排序选项,则会在页面缓存时非常快。

我希望不重新加载静态元素(未更改的元素)。如果可能的话,自动。如果没有,我希望能够手动分配哪些元素重新加载,哪些不重新加载。

此外,当我在示例网址上点击“Over / Under”时,向下滚动到1.75,然后点击“OVER 1.75”旁边的小箭头,页面将重新加载并发送到顶部。我不希望它转到顶部,但结果应该在没有页面重新加载的情况下进行排序。

如果有人可以就这两个问题提供一些帮助我会很感激,因为我不是很有经验,而且我只是在.htaccess中启用远期未来的过期标题。

网站是用PHP / HTML / CSS编写的,它是一个动态网站,使用查询从3 GB SQL数据库中获取所有结果。

如果有人可以帮助我,请提前感谢,特别是因为我给出的描述非常一般。如果需要,我可以提供代码,但不知道哪个部分会有用。

3 个答案:

答案 0 :(得分:2)

您可以使用Varnish缓存网页。 Varnish是位于Web服务器前面的HTTP代理。这需要一些时间和配置它的知识,但它是非常好的软件。

或者,您可以使用shared memorymemcacheredis将SQL结果缓存到内存中。

为了获得最佳效果,您可以结合使用这两种技术!

答案 1 :(得分:0)

  1. 首先缓存取决于您希望向用户显示的数据频率。
  2. 调试脚本并检查是否确实需要太多SQL查询。尽量减少。
  3. 避免分组,加入,按条款排序。
  4. 检查你的MySQL索引。
  5. 在MySQL中做完所有事情后开始进行缓存。
  6. 使用文件缓存数据,甚至可以尝试使用memcache mongoDB。

答案 2 :(得分:0)

你选择了错误的措辞 因此,通常这样的类型,只阅读标题,但从不打扰问题的身体,做出错误的答案。

你不需要缓存,但需要一些AJAX / Javascript。例如,按某些列对表进行排序对于javascript来说是一项微不足道的任务。请注意,这仅适用于整个表在一个屏幕上显示的情况。否则你无论如何都会重新加载页面。

另外,您提高网站加载速度的想法是错误的 首先,对于静态元素,无论是否重新加载都无关紧要 - 两者都会很快。 接下来,优化查询而不是缓存整个站点总是更好的主意。 最后,我要说你必须先配置你的网站,找到最慢的元素,然后在速度优化方面做一些步骤。