我有一个运行IIS / Asp.net的网站的登录表单,在预订时因为非常缓慢。
在LOGIN PAGE我正在做:
$("#submit1").trigger('click') //this will login into PAGE1 using form.submit()
setTimeout(function(){
window.location = "/PAGE2";
},500);
PAGE1有一个到PAGE2的GET链接。
我想知道是否会将我带到PAGE2或PAGE1?
因为IIS服务器将首先处理表单提交并发送PAGE1内容。然后它将发送GET请求PAGE2内容。
浏览器(Chrome和Firefox)的行为如何?如果它第一次收到POST响应,那么它会丢弃PAGE2 GET响应吗?
或者它会用GET响应(PAGE2)覆盖POST响应(PAGE1)
假设收到POST响应(PAGE1),现在站点显示PAGE1。 1分钟后,收到GET响应(PAGE2)。现在浏览器会做什么?
<小时/>
答案 0 :(得分:1)
$("#submit1").trigger('click') //this will login into PAGE1
setTimeout(function(){
window.location = "/PAGE2";
},500);
这将触发标识为submit1
的元素上的click事件。假设它是一个登录按钮。
有两种可能性,因为您没有提到是否通过Ajax执行此操作。
如果您使用了ajax,那么如果登录过程在500mS内完成,那么您将成功登录PAGE1
并重定向到PAGE2
。因为它是ajax。
如果您没有使用ajax,那么代码
的setTimeout(函数(){ window.location =“/ PAGE2”; },500);
将被忽略。因为在第一个事件本身,它会将您带到PAGE1
,并且Login Page
中此脚本的生命周期将结束。所以,你不会到PAGE2
。如果您想转到PAGE2
,那么您应该在PAGE1
中添加上述代码。
如果脚本没有通过Ajax生成,请求GET和POST对脚本的生命周期无效。
没有。 POST和GET都不会一次触发。
首先POST将触发。
如果它第一次收到POST响应,那么它会丢弃PAGE2 GET响应吗?
是
因为GET请求来自登录页面,并且作为POST消息的结果,您已经被重定向到Page1。因此,GET响应甚至不会被浏览器捕获。
答案 1 :(得分:1)
换句话说,我理解你的问题是“我的浏览器会加载哪个页面?”
broswer将加载它最近提出的任何请求。
如果您的按钮点击请求超过500毫秒来加载新的页面资源,则按钮点击请求应该被覆盖以加载第2页。如果页面在500毫秒之前加载,那么它应该加载第1页..它有点像询问如果我在地址栏中输入www.google.com,请按Enter键然后输入www.facebook.com ...您认为会加载哪个资源?...您最近提出的请求。
顺便说一句,window.location ='...'会像你点击asp按钮那样做一个服务器请求。
我建议你打开谷歌浏览器网络标签,调查/观察你以什么顺序对服务器进行的调用......