如何降低上传插件脚本voor或jQuery的速度
如果这不是一个奇怪的问题,我不知道是什么 但问题是:我的“onSelect”选项中有一个函数必须收集一些数据(通过AJAX),我的“onComplete”选项中有一个函数根据收集的数据“onSelect”处理刚刚上传的文件 然而,对于非常小的文件,“onSelect”在上传完成之前还没有完成,“onComplete”由于缺少必要的数据而失败。更大的文件很好用 所以,我正在寻找一种方法来暂停文件的上传。使其仅在onSelect中的函数完成获取必要数据后启动 有什么想法吗 以下是onSelect触发的函数示例:如何降低上传插件脚本voor或jQuery的速度,jquery,uploadify,Jquery,Uploadify,如果这不是一个奇怪的问题,我不知道是什么 但问题是:我的“onSelect”选项中有一个函数必须收集一些数据(通过AJAX),我的“onComplete”选项中有一个函数根据收集的数据“onSelect”处理刚刚上传的文件 然而,对于非常小的文件,“onSelect”在上传完成之前还没有完成,“onComplete”由于缺少必要的数据而失败。更大的文件很好用 所以,我正在寻找一种方法来暂停文件的上传。使其仅在onSelect中的函数完成获取必要数据后启动 有什么想法吗 以下是onSelect触发
var foo = new Array();
function checkDB( event, queueID , fileObj )
{
$.post( ajax_folder + 'fetchData' ,
{
ref: "someValue"
} ,
function( data ){
foo[ queueID ] = data.result;
} ,
'json' );
return true;
}
如果我理解正确,我认为可以将onComplete函数作为回调添加到onChange函数中。这样,onComplete函数只有在onChange完成执行后才会被调用,例如:
[...].checkDB( event, queueID, fileObj, function(){
/* the onComplete code goes here*/
});
此外,请查看这两个问题的答案,因为它们似乎都有您想要的解决方案:
希望这有帮助 通过重新排序事件解决了这个问题。处理现在在“OnalComplete”中进行,该函数通过设置间隔检查Uploadify的上载目录中的图片数是否与Uploadify注册的上载图片数相同。一旦这两个数字相等,处理就开始了。我大体上同意彼得的观点,即你应该尝试更优雅地进入事件。但是,您可以(也可能应该)将该代码提取到函数中,并保留一个标志,告诉您以前是否调用过该代码。大概是这样的:
var foo = new Array();
var flag = false;
function checkDB()
{
$.post( ajax_folder + 'fetchData' ,
{
ref: "someValue"
} ,
function( data ){
foo[ queueID ] = data.result;
flag = true;
} ,
'json' );
return true;
}
function onSelectHandler(event, queueID , fileObj){
checkDB();
}
function someOnCompleteStuff(){
if(flag){
//do oncomplete stuff
}else{
// try again later
setTimeout(someOnCompleteStuff,500);
}
}
function onCompleteHandler(event, queueID , fileObj){
someOnCompleteStuff();
}
当然,您可以随时检查foo的长度,而不是使用标志。嘿,谢谢您的回答。但是,这并不能解决我的问题,因为您正在讨论Ajax调用的onChange/onComplete,而我正在讨论uploadify脚本选项。如果我按照您的建议将onComplete放在ajax调用中,我将冒与现在发生的情况相反的风险:函数在处理文件之前启动。你确实让我想到了一种可能的方法来启动onComplete,但是让它等待数据到达。谢谢你的帮助!哎呀,我错过了Uploadify标签,不幸的是我不熟悉它。如果我的咕哝能给你一个解决方案的想法,我很高兴。或多或少,这就是我最终解决问题的方式。除此之外,您还使用setTimeOut编写了一个更简洁的函数,而不是一个单独的函数,该函数调用setInterval来检查某个变量是否存在,如果存在则触发处理。