设置javascript变量时包含一个PHP文件

设置javascript变量时包含一个PHP文件

问题描述:

我有一个项目,网站上的不同页面将加载到一个包装器中;当点击页面链接时,内容是该页面被加载到包装中,而不是被带到新页面的用户。该网站正在使用PHP和MySQL构建,并且页面不应该重新加载。显然,它应该是一个平滑的动作。设置javascript变量时包含一个PHP文件

我已经通过几个选项,不完全削减它。我已经考虑过只包含所有文件,并将它们放在没有显示的div内,这样当选择页面时,JavaScript会将div显示更新为可见。这样做的问题是它会强制分析所有页面,这只是意味着多余的数据库查询以及由此导致的较慢的页面加载时间。

我试过的另一件事是当页面链接被点击时启动AJAX调用。 JavaScript会将页面名称传递给一个PHP脚本,这将会设置一个会话变量$ _ SESSION ['page_name'],等于传递的页面名称。利用这一点,然后我就可以做这样的事情:

      //assume $page is equivalent to $_SESSION['page_name'] 
      if(isset($page) && file_exists("pages/$page") 
      { 
       require_once "pages/$page"; 
      } 

但是这需要为了工作被刷新页面。我试图在没有重新加载页面的情况下完成这一切。

所以现在我有点卡住了。有什么建议么?

您的控制点是客户端。如果/成功触发Ajax响应,请设置JavaScript。当JS完成AJAX调用时,设置cookie。在您的点击事件中,检查您需要的任何Cookie,并根据Cookie是否存在进行相应的AJAX调用(或不调用)。

在这种情况下,不要将状态处理的责任放到服务器上。

请勿使用$ _SESSION;只需在运行ajax请求时使用GET或POST参数即可。即而不是得到/something.php而是得到/something.php?page=xyz。然后使用PHP中的参数确定需要什么

如果确实需要将会话变量设置为以后使用,那么在处理ajax请求时可以这样做。即颠倒你现在正在做的顺序

JQuery.load()用一个简单的控制器加载视图?