Php Ajax调用时服务器端重新加载启动

Php Ajax调用时服务器端重新加载启动,php,javascript,ajax,Php,Javascript,Ajax,我需要启动服务器端(PHP)的重载和AJAX调用。我该怎么做呢。老实说,我不认为它得到支持 我当前的方法是使用PHP header()函数,从AJAX调用中将其捕获为responseText,然后执行innerHTML添加 然而,在我的书中,它不是一个正确的重载,因为它没有初始化onload函数。它似乎也是人为设计的,而不是“干净”的解决方案。将命令/标志发送回Ajax处理程序,使其在页面中调用以下JavaScript方法: window.location.reload(); 有一种模式使用A

我需要启动服务器端(PHP)的重载和AJAX调用。我该怎么做呢。老实说,我不认为它得到支持

我当前的方法是使用PHP header()函数,从AJAX调用中将其捕获为responseText,然后执行innerHTML添加


然而,在我的书中,它不是一个正确的重载,因为它没有初始化onload函数。它似乎也是人为设计的,而不是“干净”的解决方案。

将命令/标志发送回Ajax处理程序,使其在页面中调用以下JavaScript方法:

window.location.reload();

有一种模式使用AJAX创建类似推送的应用程序。我不知道范例的真实名称,也不知道一个好的实现,但它基本上是这样工作的:

  • 客户端向服务器发出AJAX请求
  • 服务器未关闭连接
  • 当服务器想要推送时。服务器说:
    A.处理推送消息X
    B启动一个新的连接。(即转到1。)
    <服务器关闭连接>

  • 因此,始终存在一个“挂起”连接,一旦服务器想要响应,客户端就会立即创建一个新的连接,再次挂起。

    重新加载整个页面的唯一方法是更改
    窗口。位置
    。您不能从服务器上执行此操作。每一个动作都必须从客户端发起——这是HTTP等restful协议的基础

    但是,您的服务器可以发回整个文档,然后您可以“选择”要替换的部分。jQuery允许通过函数实现这一点

    例如,这将重新加载实体:
    $('body').load('ajax/page.html body')

    我会发送一个标志,告诉JS重新加载页面。否则,您将不得不求值或将脚本注入页面。这怎么不能满足您的要求?它仍然应该从服务器获取。唯一可能的问题是缓存问题,这里有一些建议:为什么需要加载整个文档?更好的选择是使用来自AJAX调用的数据,甚至是格式化的HTML,并重新填充各个DOM元素。document.write()-ing整个页面非常糟糕,我可以只使用innerHTML..我不需要“eval或injection”
    echo'
    ,这将是XHR长轮询。这是执行服务器推送的许多技术之一。我认为这更多的是与聊天应用程序有关,西米拉里说乔恩·本尼迪克托有正确的答案。不过,服务器也可以通过AJAX调用返回整个文档。但是当你收到它时,只取你想要的部分,而不是全部。不确定这是否有用。