重新加载方法:响应文本与窗口.位置.href(1 次旅行与 2 次)

Reload Methods: responseText vs. window.location.href (1 trip vs 2)

本文关键字:位置 窗口 href 旅行 响应 新加载 加载 方法 文本      更新时间:2023-09-26

在Ajax调用后,我重新加载了一个网页。 我有两个选择..

  1. 我可以将页面作为响应文本发送,并让它使用 document.write(( 写入屏幕。

  2. 我可以向Javascript发送一个控件,告诉它使用window.location.href重新加载网页。

选项 1 很好,因为它只需要一次往返而不是两次。 但是,加载事件没有像正常重新加载那样触发。

选项 2 很好,因为它触发了加载事件。

有没有办法两全其美...即我想使用 responseText 发送页面,但在收到后也像新页面一样加载它。

当您在服务器上

(控件在服务器上(并且需要重新加载页面时,进行 1.5 次旅行而不是 .5 次旅行根本没有意义。这是阿贾克斯的弱点还是我不知道该怎么做?

相关:

缓存问题

*

类似帖子

好的,

从我看到的,您想在用户注册时加载一个新页面。最好的方法是没有 ajax。随着页面的加载和 onLoad 事件的触发。

但是,您还需要检查用户使用的电子邮件是否已在使用中。我喜欢这样做的方法是创建一个变量并将其设置为 false。使用电子邮件输入字段的 onchange 事件来运行 ajax 验证。如果电子邮件可用且有效,我将变量设置为 true。我向按钮的 onsubmit 事件添加一个函数并返回变量。这样,仅当电子邮件可用时,用户才会被重定向。

或:

可以将所有代码从 onLoad 事件移动到函数中。只需在使用响应文本设置页面时调用它。与其使用"document.write((",我建议使用document.body.innerHTMLdocument.head.innerHTML

不要为此使用 AJAX,甚至根本不要使用 JavaScript(当然,表单验证除外(。 您可以使用普通的旧HTML 2.0。

<form action="processSignup.php" method="post" onsubmit="return isFormValid();">
    <!-- input fields here -->
    <input type="submit" value="sign up" />
</form>

我不是PHP专家,但服务器代码应该不复杂。 进行数据库调用,然后重定向到下一页。 它可能与 AJAX 示例中的代码完全相同

不要试图使这过于复杂。 这是从 1990 年代初开始使用的基本模式。 (或者更早,我不确定,在那之前我没有互联网接入。 在这里使用 AJAX 模式不会获得任何好处。