使用JavaScript / jQuery显示页面之间存在的“正在加载...”弹出窗口

时间:2016-06-08 10:38:01

标签: javascript jquery popup

我正在处理的网站有一个搜索工具,触发“现在搜索...”弹出窗口,一旦在第一页上提交表单就会显示,此弹出窗口仍保留在屏幕上,直到第二页已完成加载。这个弹出窗口不是JavaScript窗口,它只是一个设置了高z-index值的图层。

使用没有任何AJAX调用或iframe的基本表单提交来处理搜索请求,那么如何在页面加载之间显示和保持弹出窗口?预期的行为是浏览器从内存中卸载/删除第一页,只显示一个空白页,直到第二页的代码开始下载并准备好显示。此外,当网站显示在Edge中时,此行为不再有效,因此我需要了解弹出功能如何工作以解决该浏览器中的问题。

提前感谢您提供任何建议或帮助。不幸的是,我正在处理的网站正在更新,所以在这个阶段我无法链接到它。

2 个答案:

答案 0 :(得分:1)

恕我直言,使用ajax回调

会很容易
$.ajax({
    //params like type, data, url etc..
    //...
    url: url,
    type: "POST",
    data: data,
    dataType: 'html', //if you will receive HTML from server 
    beforeSend: function() {
      //clear page and show popup
      $("#main").html(""); //for example if your main block has id="main"
    },
    success: function(data) {
      //draw new page
      $("#main").html(data);
    }
});

答案 1 :(得分:1)

互联网上的页面之间没有真正的持久性,例如,当您登录时,'对于一个网站,每次你访问一个页面,你还没有登录,你只需要由服务器重新登录,从页面到页面传递数据,识别用户会话。我们只能以这种方式给出持久性的幻觉(和实际利益)。

有很多方法可以创造出你所要求的错觉,但是AJAX是我建议的唯一解决方案。当用户提交表单时,触发加载,然后调用页面,并在收到成功响应后将结果显示给用户。

https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started

https://api.jquery.com/jquery.ajax/