私はAjaxを大量に使用するウェブサイトを持っています。場合によっては、ユーザーのページに大きな画像ファイルを読み込む必要があります。私の質問は、これらの大きな画像ファイルがダウンロードされているときに、例えば、ユーザーが画像を表示しているページから離れて移動すると、それらを止める方法があるかどうかです。ありがとう。Javascript:キャンセル/画像リクエストのキャンセル
答えて
私は正確に同じ問題を持っていた、ときに、ユーザーに迅速(AJAX)を介して「ページング」の検索結果がブラウザにはまだすべてのページだけではなく、現在の1のプロファイル画像をダウンロードしようとしていました。
//cancel image downloads
if(window.stop !== undefined)
{
window.stop();
}
else if(document.execCommand !== undefined)
{
document.execCommand("Stop", false);
}
は、基本的には、ブラウザの「停止」ボタンをクリックするようなものだ:このコードは、新しい検索が実行された直前にページングイベントに呼ばれ、私のために働きました。
が悪くマン溶液は単に空の文字列にイメージタグのSRCプロパティを設定する、またはウィジェットに向けてそれを指すようになるであろうIEは、Firefox、クロム、オペラとSafari
イメージをロードするためにajaxを使用していると仮定すると、単にwindow.onunloadイベントでリクエストを中止することができます。使用しているXMLHttpRequestオブジェクトのグローバル変数を宣言します。
var xhr;
//if using the XMLHttpRequest object directly
//you may already be doing something like this
function getImage(...){
xhr = new XMLHttpRequest();
xhr.open(....);
}
のjQueryを使用している場合、あなたはXHR変数への呼び出しあなたは$アヤックス()または$に.getの戻り値を割り当てることができます。
xhr = $.ajax(.....);
要求を処理して、要求を中止します。
window.onunload = function(){
xhr.abort();
}
私は画像をロードするためにajaxを使用していません。 私はsrc = ''がトリックを行うと思ったが、そうはしなかった。 私が本当に探しているのは、document.getElementById( 'image')。stopLoading(); :) – frio80
でテスト。
編集
あなたのコメントを見て、それが空にするSRCプロパティを変更すると動作しません... blank.gifか何かを使用してみてください驚かせました。
これでうまくいかない場合は、ブラウザのアーキテクチャに拘束される可能性があります。つまり、あなたはS.O.Lです。
IE7ではSRCタグを別のイメージに再割り当てしても機能しません。最初のイメージのダウンロードが続けられます。
ここにセットアップがあります。
JPEGのタイプのHTTPハンドラを作成しました。これには実行を終了しないコードが含まれています。だからsomeImage.src = myhandler.ashxはタイムアウトするまで永久にそこに座ります。小さな画像ファイルに画像を再割り当てし、この途中で
、押して別のボタン: someImage.src = small.jpg
myhandler.ashxの要求は、我々が再割り当てされているにもかかわらず、終わっていませんsrc。あなたが実際にノードsomeImage.parentNode.removeChild(someImage)を削除した場合
さらにまだmyhandler.ashx
IE7でテストおよびPro HTTPウォッチで監視をダウンロードしようとし続けています。
私はすべての画像の読み込みを停止させたいというページのセクションがあります。親ノードに移動してinnerHTMLを ""に設定するとIE用に見つかりました。これはIE、Safari、Firefoxでのみ動作しますが、何らかの問題(プログラムによって停止ボタンをクリックすることは他の理由で私には適していません) –
このようです。
$(img).attr('src','');
- 1. getUserMediaリクエストのキャンセル
- 2. Android:リサイクラビューの画像リクエストをキャンセルするには
- 3. 画像のWordpress httpリクエストをキャンセルするには?
- 4. AlamofireImageで画像のダウンロードをキャンセルする
- 5. retrofit:現在のリクエストのキャンセル
- 6. CancellationTokenキャンセルのリクエストを待つ
- 7. セカンダリJavaScriptイベントのキャンセル
- 8. ASIHTTPリクエストをキャンセルする
- 9. AFNetworking:キャンセル済み、リクエストなし
- 10. JavaScriptをキャンセルする
- 11. ASINetworkQueueの特定のASIHTTPリクエストのキャンセル
- 12. JavaScriptプロンプトでキャンセルする
- 13. アクションをキャンセルするJavascriptプロンプト
- 14. Javascript 'confirm()'ポストバックをキャンセルする
- 15. Javascriptタイムアウトをキャンセルします。
- 16. $ resourceのリクエストをキャンセルできません
- 17. Observable.create内のHTTPリクエストをキャンセルします。
- 18. キャンセルされたリクエストのエラー処理
- 19. iOSアプリの購入:最新のキャンセル日とキャンセル数をリクエストする
- 20. httpリクエストがjavascriptでキャンセルされましたhtml5 audio preload
- 21. Javascript - キャンセルされたリクエストはパフォーマンスに影響しますか?
- 22. .NET HttpClient - CancellationTokenキャンセルのキャンセルをキャンセルしました
- 23. httpリクエストをキャンセルする方法
- 24. 角$ httpリクエストをキャンセルする方法1.5
- 25. BeforeSendRequestでリクエストをキャンセルする方法
- 26. HttpClient GET Webリクエストをキャンセルする方法
- 27. Ajaxリクエストを正常にキャンセルする
- 28. jQueryのアップロードBlueimpファイル - イベントをキャンセル(総電流プリアップロード画像をカウント)
- 29. ユーザーをキャンセルするキャンセル 'キャンセル'をクリックします。
- 30. JavaScriptのファイルアップロードのキャンセルのためのイベント
ページから移動するときにブラウザ*がダウンロードをキャンセルしていないことに気づいていますか?私はそれがすべきことに同意する。しかし、私は、異なるブラウザが異なる振る舞いをする可能性も簡単に想像することができます。残念ながら。 – Bruce
さて、これはajaxアプリケーションなので、私はページを残すことはありませんでした。私はページを「残して」みましたが、驚いたことにイメージはダウンロードを停止しません。ワオ。期待していませんでした。 FF 3.0.10/IE8とFiddlerを使用してトラフィックを監視しています。 – frio80