4


1

safari / chrome / operaは、アップロードの進行中にajaxリクエストを行うことができますか?

基本的に私は簡単なajaxリクエストを作成しています

function upload(){


            setInterval(function callMeOften()
            {
                $.ajax({
                   method: 'get',
                   url : 'uploadinfo.php?unique_id=',
                   dataType : 'text',
                   success: function(text){ updatebar(text); },
                   error: function (XMLHttpRequest, textStatus, errorThrown) {
                      alert(XMLHttpRequest.status);
                      alert(XMLHttpRequest.responseText);
                   }
                });

            }, 5000);

        }

        function updatebar(per){

            $('#updateMe').animate({"width" : per});

        }

phpスクリプトへ

$unique_id = $_GET['unique_id'];
$progress = uploadprogress_get_info($unique_id);

if(function_exists("uploadprogress_get_info")) {


if (floor(($progress['bytes_total']/1024)/1024) > 100){

    echo "run";

} else {

    if ($progress['bytes_uploaded'] == 0 || $progress['bytes_total'] == 0){

        echo "100";

    } else {

        echo floor($progress['bytes_uploaded'] / $progress['bytes_total'] * 100);

    }

}

}

この関数upload(); onsubmit()を使用して呼び出されます。ファイルアップロードフォームのアクション


私は相対パスを使用しており、リクエストはFFとIEで動作しますが、クロム、サファリ、およびオペラでは、アップロードの進行中にajaxリクエストは実行されません。

どうしたの?

編集:最後に、onsubmitアクションを使用して作成された別のウィンドウにアップロードの進行状況を表示し、画面の中央にサイズ変更して再配置しました。

1 Answer


1


私が知っているように、ブラウザに対してアクティブにできる1つのサーバードメインに対して2つのリクエストがある可能性があります。 サーバーのドメイン名が「code.mydomain.com」の場合、一度に最大で2つのリクエストを開くことができます。 あなたの場合、最初はファイルのアップロード要求です。 指定したブラウザでフォームをアップロードする以外に、他のアクティブなリクエストがあるかどうかを確認する必要があります。