0

既に AJAX 化されたデータをキャッシュすることで、AJAX 呼び出しをより効率的にしようとしています。また、結果のデータのディメンションの一部に応じて、特定の方法でデータをレンダリングする必要があります。

初めてデータを呼び出すと、寸法を読み取ることができ、問題ありません。キャッシュも十分に機能しますが、キャッシュされたデータ内の要素のサイズを取得するのが非常に困難です。

以下は、私がやっていることの簡略化されたバージョンです(同じ問題があります):

var cache = {};

// The AJAX part
function getDetails(request){
    return jQ.get(request);
};

// Filter & render AJAX data
function renderData(data){
    var endResult = $(data).find('#theTargetElement');
    endResult.appendTo($placehold);
    $placehold.find('#theTargetElement').css('visibility','hidden');
    // This will log the dimensions on AJAX data fine
    // But almost all cached data returns height 0
    console.log( height of certain elements within data );
};

// Click handler
jQ('#slides').on('click', '.slideLink', function(e){
    e.preventDefault();
    var target = jQ(this).attr("href");
    if ( cache[target] ) { // If the data exists in cache object
        var $cached = cache[target]
        renderData( $cached );
    } else {
        getDetails(target)
            .done( function(result) {
                cache[target] = result;
                renderData(result);
            })
    }
});

追加されたデータは間違いなくそこにあり、ページに表示されます-その測定値を使用できないようです.

4

0 に答える 0