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

设置javascript变量时包含一个PHP文件,php,javascript,ajax,Php,Javascript,Ajax,我有一个项目,其中一个网站上的不同页面将加载到一个包装;单击页面链接时,内容是页面被加载到包装器中,而不是用户被带到新页面。该网站是用PHP和MySQL构建的,页面不应该重新加载。显然,这应该是一个平滑的运动 我已经浏览了一些不太适合的选项。我考虑过只包含所有文件,并将它们放在div中而不显示,这样当选择一个页面时,JavaScript会将div显示更新为可见。这样做的问题是,它强制解析的所有页面,这只意味着多余的数据库查询,并导致页面加载时间变慢 我尝试过的另一件事是在单击页面链接时启动AJA

我有一个项目,其中一个网站上的不同页面将加载到一个包装;单击页面链接时,内容是页面被加载到包装器中,而不是用户被带到新页面。该网站是用PHP和MySQL构建的,页面不应该重新加载。显然,这应该是一个平滑的运动

我已经浏览了一些不太适合的选项。我考虑过只包含所有文件,并将它们放在div中而不显示,这样当选择一个页面时,JavaScript会将div显示更新为可见。这样做的问题是,它强制解析的所有页面,这只意味着多余的数据库查询,并导致页面加载时间变慢

我尝试过的另一件事是在单击页面链接时启动AJAX调用。JavaScript会将页面名传递给PHP脚本,PHP脚本会将会话变量$\u session['page\u name']设置为与传递的页面名相等。利用这个,我可以做这样的事情:

                            //assume $page is equivalent to $_SESSION['page_name']
            if(isset($page) && file_exists("pages/$page")
            {
                require_once "pages/$page";
            }
但这需要刷新页面才能工作。我试图在不重新加载页面的情况下完成这一切


所以现在我有点困了。有什么建议吗?

您的控制点是客户。在触发成功的ajax响应时,让JavaScript设置cookies。当JS完成AJAX调用时,设置cookie。在单击事件中,根据cookie是否存在,检查您需要的任何cookie并进行适当的AJAX调用(或不调用)


在这种情况下,不要将状态处理的责任交给服务器

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


在这种情况下,不要将状态处理的责任交给服务器

不要使用$\u会话;运行ajax请求时,只需使用GET或POST参数。也就是说,不是获取
/something.php
,而是获取
/something.php?page=xyz
。然后使用PHP中的参数确定需要什么


如果您确实需要一个会话变量集供以后使用,那么可以在处理ajax请求时这样做。也就是说,颠倒你现在所做的事情的顺序

不要使用$\u会话;运行ajax请求时,只需使用GET或POST参数。也就是说,不是获取
/something.php
,而是获取
/something.php?page=xyz
。然后使用PHP中的参数确定需要什么

如果您确实需要一个会话变量集供以后使用,那么可以在处理ajax请求时这样做。也就是说,与您现在所做的操作相反

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

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