我有以下js代码:
clientData.reloadTable( "CreateCSV", "/create/file" );
$("#downloadFrame").attr("src","/download/download");
在上面的代码中。第一条语句是在磁盘上创建一个 csv 文件。第二条语句正在下载它(由于使用 AJAX 请求时出错,因此使用 iframe 下载文件)。它正在下载文件,但包含以前的内容。这意味着它会在完成更新该文件之前提示我下载文件。
如何强制我的第二个nd语句在第一个语句完成其工作之前不执行?
谢谢
最佳答案
在 Javascript 中执行此类操作的最佳方法是使用回调函数。
是否可以更改 reloadTable 函数,以便 >
var callback = function () { $("#downloadFrame").attr("src", "/download/download") }
clientData.reloadTable("CreateCSV", "create/file", callback);
然后在 reloadTable 函数中,一切完成后调用回调函数。
这就是 Javascript 的真正魅力。
<小时/>否则,如果您知道 reloadTable 需要多长时间,也可以使用 setTimeout()。
例如如果需要1秒。要完成,您可以>
clientData.reloadTable( "CreateCSV", "create/file" );
var func = function () { $("#downloadFrame").attr("src","/download/download");}
setTimeout(func, 1000);
关于javascript - 如何设置两个js函数之间的延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5787207/