Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 同时页面加载和ajax调用_Asp.net_Ajax_Load - Fatal编程技术网

Asp.net 同时页面加载和ajax调用

Asp.net 同时页面加载和ajax调用,asp.net,ajax,load,Asp.net,Ajax,Load,我有一个web应用程序,其中一些页面需要很长时间才能加载,因为它们必须在代码隐藏中完成。我想通过显示进程的不同状态来向用户显示正在发生的事情 我正在考虑(通过ajax)递归调用一个页面,以便在会话中准备一个值。此值由需要时间加载的页面设置。 问题在于,当另一个页面加载完成时,ajax调用的页面不会被执行。 有什么办法吗 感谢advance这里通常的模式是加载一个初始状态页面,该页面触发AJAX调用以检索页面的最终版本,在页面加载完成时用AJAX调用的结果覆盖原始版本。分离需要很长时间的代码部分,

我有一个web应用程序,其中一些页面需要很长时间才能加载,因为它们必须在代码隐藏中完成。我想通过显示进程的不同状态来向用户显示正在发生的事情

我正在考虑(通过ajax)递归调用一个页面,以便在会话中准备一个值。此值由需要时间加载的页面设置。 问题在于,当另一个页面加载完成时,ajax调用的页面不会被执行。 有什么办法吗


感谢advance

这里通常的模式是加载一个初始状态页面,该页面触发AJAX调用以检索页面的最终版本,在页面加载完成时用AJAX调用的结果覆盖原始版本。

分离需要很长时间的代码部分,并在页面加载时异步调用它(例如,作为WebMethod),例如,如果使用jQuery,则在
document.ready
上。您还可以使用设置为条件刷新的
UpdatePanel
来伪造此代码,默认情况下,代码永远不会运行。然后使用
\uuu doPostBack('updatePanelUniqueID','')从脚本刷新它

它们需要多长时间?您在服务器端做什么?您计划在客户端做什么?可能需要几分钟才能继续。在服务器端,我有一个包含文件的数据库,这是我需要检索到客户端的文件。如果页面的最终版本导致要下载的文件(标题内容类型更改),会怎么样?然后返回一个带有链接的页面,用户可以从中下载文件。不幸的是,我不能这样做,文件物理上不在服务器上,而是在数据库中。Err..好的,那么您想向用户显示HTML,表明该过程需要一些时间,然后在处理完成后,自动下载非HTML结果?我想您可以首先返回一个HTML“please wait”页面,触发一个AJAX调用来指示服务器编写预期的结果,等待结果完成,然后将当前页面重定向到新创建的可下载结果,但这需要将结果缓存在服务器上,也违反了一次单击,Web的一个结果模型。这几乎和我所做的一样,区别在于我不使用Ajax调用最终页面,而是使用window.location.replace=mypage。我尝试过你的解决方案,但似乎不起作用,Ajax代码被不断调用,但在另一个加载时,后面的代码没有执行。哪一个?你能用你如何实现这一点的一些细节来更新这个问题吗?我已经尝试了这两种方法,在第一种方法中,我将该方法放在一个web服务中(在同一个网站中),并从需要很长时间才能加载的页面调用它。对于第二个,我在“主页”中插入了updatepanel,并通过_doPostBack刷新它。在updatepanel中,我刚刚添加了一个方法来调用页面后面的代码来读取会话。