使用ASP .Net MVC 4.0、vs10、MSSQL 2008
我有一个存储过程,它在我的页面之一中执行。一般需要30到50秒才能执行。我想显示一个警报对话框,在此过程中将加载 gif 图像。我正在使用 sqlcommand 执行存储过程。该过程从单击“处理”按钮开始。完成该过程后,页面返回另一个 View 。
我对 javascript 的了解很差,所以请告诉我一个简单的方法。
编辑:
是否可以在单击按钮时显示图像并执行其他代码隐藏过程?
喜欢:
<script type="text/javascript">
function showImage() {
document.getElementById('Processing').style.visibility = visible;
}
</script>
<div id="progessbar">
<img alt="Processing" src="../../Images/Processing2.gif" id="Processing" style="visibility:hidden"/>
</div>
最佳答案
由于请求需要很长时间,因此很难以传统的 MVC
方式完成您想要做的事情。使用异步处理您的请求的 AJAX 可以更好地实现这一点。我还建议使用 jQueryUI 对话框或任何模式来显示进度指示器,甚至任何自定义 JS。
我喜欢jQuery BlockUI亲自为我创建模式,但这只是一个偏好。
/** Using a wrapper to show/hide the progress indicator.
Swap the blockUI with any library or custom JavaScript for displaying the progress indicator.
*/
var showProgress = function() {
$.blockUI({ message: '<img src="progressImage.gif" />' });
};
var hideProgress = function() {
$.unblockUI();
;}
/** Trigger to submit the form */
$('#submit').click(function() {
/** Show an indicator before making an AJAX request*/
showProgress();
$.ajax({
url: '/someEndpoint',
data: $.toJSON({/* some JSON param */}),
type: 'POST',
dataType: 'json',
timeout: 50000 /** Override timeout in ms accordingly */
}).done(function(data){
/** Remove the indicator once the request has succeeded and process returned data if any. */
hideProgress();
});
return false;
});
关于javascript - 在使用 javascript 的过程中发出警报对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14557911/