0

以前の質問で助けられた以下のコードがあります(http://stackoverflow.com/questions/10920514/using-ajax-jquery-to-refresh-an-image)

これが機能する方法は、image_feed.php が画像への URL を返すというものでした。以下のスニペットは、この画像をダウンロードし、ページ上の既存の画像と交換しています。

アプリケーションの動作方法を変更しました。画像の URL は以前と変わらないので、image_feed.php スクリプトをバイパスできます。

image.php?id=11 という画像があり、この画像をダウンロードし、ロードが完了するのを待ってから #camera_image_changer 画像と交換する必要があります。

私は2つのことに苦労しています。1 つは、スクリプトが実際にどのように機能するかを思い出して、画像の URL を直接指定し、2 番目に画像のキャッシュを防止できるようにすることです。

どんな助けでも大歓迎です。

ありがとう

// image feed
var $img = $('#camera_image_changer'); 

 setInterval(function() {

    $.get('../helpers/image_feed.php?camera_id=11', function(data) {
    var $loader = $(document.createElement('img'));

     $loader.load(function() {
        $img.attr('src', $loader.attr('src'));
     });

     $loader.attr('src', data);

    });

}, 5000);

更新: 私は自分の質問に答えたかもしれません。私は以下のコードを持っていますが、それは機能しています。

// image feed
var $img = $('#camera_image_changer'); 

setInterval(function() {

        var $loader = $(document.createElement('img'));

        $loader.load(function() {
            $img.attr('src', $loader.attr('src'));
        });

        $loader.attr('src', '../helpers/image.php?<?=$resource;?>=<?=$resource_id;?>');

}, 5000);
4

1 に答える 1

1

呼び出しを削除して、getその中のコードのみを使用し、data変数に画像へのパスを割り当てることができます。

var $img = $('#camera_image_changer');   

// this delay the code execution in milliseconds
setInterval(function() { 
    var data = "path/to/image.jpg";

    // Creates an image object and pass it to jQuery return a jQuery object
    var $loader = $(document.createElement('img')); 

    // Create a callback that fires when the image finishes loading
     $loader.load(function() { 
        // assign the source of the loaded image to the target image
        $img.attr('src', $loader.attr('src')); 
     }); 

     // assign the image to load
     $loader.attr('src', data);
 }, 5000); // 5 seconds (5000 ms)

前のコードでは、getメソッドはページを呼び出し、コンテンツをdata変数として返します。

于 2012-07-12T16:29:27.283 に答える