我有一个项目,用户可以上传文件到云存储和上传大文件显然需要一些时间来做,我明白。但是,如果文件足够大,当上传到云的过程正在运行时,浏览器(在我的情况下是Chrome)将看到网页没有响应,并给予用户选择杀死页面或等待。我现在的目标是做一些事情,不让浏览器给予用户杀死页面的选择,但我正在努力找到一种方法。
我的第一个想法是添加某种进度条来跟踪上传进度,但我发现的源似乎只记录控制台日志上的进度,而不是实际的查看页面。
我的另一个想法是添加一个加载GIF之类的东西,它会在调用upload方法之前显示,但它不会在调用之前显示,只会在过程完成后的一瞬间显示。我为它做的代码看起来像下面这样。
function CallUploadFile(fileData, successFunction, errorFunction) {
$('#loading-gif').show()
$.ajax({
url: '/File/UploadFile',
type: 'post',
data: data,
success: function (fileData) { successFunction(data); },
error: function (fileData) { errorFunction(data); },
...
});
}
我不知道如何从这里开始,希望得到一些帮助。
1条答案
按热度按时间yyyllmsg1#
您在Chrome中遇到的“杀死页面”通知问题可能是因为浏览器认为页面在文件上传过程中没有响应。为了防止这种情况并提供更好的用户体验,我们可以在文件上传过程中实现进度条并改进反馈。
下面的代码跟踪进度条来跟踪上传进度。在显示“文件已上传”消息10秒后,进度条将重置为零,单击“选择文件”也将重置进度条为零。
上传开始前要显示的加载GIF行为: