Php 缓存网站,使其不会';t重新加载

Php 缓存网站,使其不会';t重新加载,php,html,caching,dynamic,web,Php,Html,Caching,Dynamic,Web,我的网站有一些问题,因为它做了很多SQL查询,所以速度很慢,点击页面上的一个元素,整个页面就会重新加载 以下是一个例子: 当您第一次打开页面时,需要一些时间。然后,当您单击排序选项,如“3Way”、“Over/Under”、“Asian Disability”等。这将再次花费与页面连同左右列和顶部菜单一起重新加载相同的时间 但是,如果您再次单击其中一个排序选项,则在缓存页面时速度会非常快 我希望静态元素(未更改的元素)不要重新加载。如果可能的话,自动。如果没有,我希望能够手动分配哪些元素被重新

我的网站有一些问题,因为它做了很多SQL查询,所以速度很慢,点击页面上的一个元素,整个页面就会重新加载

以下是一个例子:

当您第一次打开页面时,需要一些时间。然后,当您单击排序选项,如“3Way”、“Over/Under”、“Asian Disability”等。这将再次花费与页面连同左右列和顶部菜单一起重新加载相同的时间

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

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

另外,在我给出的示例URL上,单击“上方/下方”,向下滚动至1.75,然后单击“上方1.75”旁边的小箭头,页面将重新加载并发送到顶部。我不希望它进入顶部,但结果应该在不重新加载页面的情况下进行排序

如果有人能就这两个问题提供一些帮助,我将不胜感激,因为我不是很有经验,我只在.htaccess中启用了far future expires头

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

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

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

或者,您可以使用或将SQL结果缓存在内存中

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

  • 缓存的第一件事取决于您希望向用户显示数据的频率
  • 调试脚本并检查是否确实需要太多SQL查询。尽量减少
  • 避免GROUPBY、JOIN、ORDERBY子句
  • 检查MySQL索引
  • 在MySQL中完成所有操作后,开始进行缓存
  • 使用文件缓存数据,memcache甚至可以尝试mongoDB

  • 您选择了错误的措辞。
    因此,那些只看标题却从不关心问题主体的普通的so型人会做出错误的回答

    您不需要缓存,只需要一些AJAX/Javascript。例如,对javascript来说,按某个列对表进行排序是一项微不足道的任务。请注意,这仅在整个表显示在一个屏幕上时有效。否则,您将重新加载页面

    此外,您关于提高站点加载速度的想法是完全错误的。
    首先,对于静态元素,它们是否重新加载并不重要——两者都会很快。 其次,优化查询总是一个更好的主意,而不是缓存整个站点。
    最后,我要说的是,你必须首先分析你的网站,找到最慢的元素,然后在速度优化方面采取某些步骤。

    所有表格都不能放在一个屏幕上,这意味着它无法正常工作。查询尽可能地优化,唯一的其他解决方案是将它们作为cron作业运行,然后从XML导出结果,并在页面请求时从那里读取。网站最慢的部分是查询,而页面在重新加载时跳转到顶部这一事实令人恼火,因此增加了问题。但是我仍然不明白,为什么页面会重新加载所有的列,即使是那些不变的列(尽管它们是动态的)。