重新加载方法:响应文本与窗口.位置.href(1 次旅行与 2 次)
Reload Methods: responseText vs. window.location.href (1 trip vs 2)
在Ajax调用后,我重新加载了一个网页。 我有两个选择..
-
我可以将页面作为响应文本发送,并让它使用 document.write(( 写入屏幕。
-
我可以向Javascript发送一个控件,告诉它使用window.location.href重新加载网页。
选项 1 很好,因为它只需要一次往返而不是两次。 但是,加载事件没有像正常重新加载那样触发。
选项 2 很好,因为它触发了加载事件。
有没有办法两全其美...即我想使用 responseText 发送页面,但在收到后也像新页面一样加载它。
当您在服务器上(控件在服务器上(并且需要重新加载页面时,进行 1.5 次旅行而不是 .5 次旅行根本没有意义。这是阿贾克斯的弱点还是我不知道该怎么做?
相关:
缓存问题
*
类似帖子
从我看到的,您想在用户注册时加载一个新页面。最好的方法是没有 ajax。随着页面的加载和 onLoad 事件的触发。
但是,您还需要检查用户使用的电子邮件是否已在使用中。我喜欢这样做的方法是创建一个变量并将其设置为 false。使用电子邮件输入字段的 onchange 事件来运行 ajax 验证。如果电子邮件可用且有效,我将变量设置为 true。我向按钮的 onsubmit 事件添加一个函数并返回变量。这样,仅当电子邮件可用时,用户才会被重定向。
或:
可以将所有代码从 onLoad 事件移动到函数中。只需在使用响应文本设置页面时调用它。与其使用"document.write((",我建议使用document.body.innerHTML
和document.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 模式不会获得任何好处。
- 如何使用AngularJS在点击身体内部任何位置时显示弹出窗口
- 意外行为:绝对位置g&$(窗口).resize()
- JavaScript窗口.位置不;我不在内容编辑器Web部件中工作
- 谷歌地图API-信息窗口显示谷歌位置API信息
- 获取相对于窗口的IFRAME位置
- 谷歌地图位置自动完成被jQuery Mobile弹出窗口阻止
- JS窗口.位置不起作用
- 是否可以模拟 qUnit 测试的窗口位置对象
- 更改信息窗口的位置显示在谷歌地图API v3中
- 窗口位置href更改不会重新加载
- 如何在提交事件的底部设置窗口位置
- 如何在模式打开时更改窗口.位置
- 如何更新jQuery Mobile全局弹出窗口的位置
- 谷歌地图偏移标记/信息窗口位置(panTo/setCenter)
- 书签窗口位置javascript
- 从其他位置触发文件选择窗口
- 使用Window_handles在位置弹出窗口中单击按钮,并带有守夜功能
- Firefox弹出窗口“;这个网页被重定向到一个新的位置“;在每个requestPromise ajax调用上,有什么方
- imgAreaSelect插件在引导模式窗口中的位置错误
- 单元测试窗口位置分配的角度问题