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;
}

最佳答案

我总体上同意彼得的观点,即你应该尝试更优雅地利用事件。但是,您可以(并且可能应该)将该代码提取到一个函数中,并保留一个标志来告诉您它之前是否被调用过。像这样的事情:

    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 的长度,而不是使用标志。

关于jquery - 如何减慢 jQuery 的 Uploadify 插件脚本速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3063233/

相关文章:

javascript - 如何使用 Jquery/Ajax 调用将数据显示为表格?

Uploadify未上传文件,但表示成功

php - 使用 SWFupload 或 Uploadify 时,是否需要编辑 php.ini 设置?

javascript - jQuery,单页中的多个内容 slider

asp.net-mvc - 身份验证 token 和 Html.AntiforgeryToken 的上传问题(插件不发送 cookie)

php - 上传3.0的问题

php - 在 uploadify 中传递 $_SESSION

php - 将图像上传到 S3 时遇到内部服务器错误 500

jquery - 将文本框拆分为 3 个区域

javascript - div 无法可见