0

私は cs カート 4.2.4 を初めて使用し、AJAX によってホームページに製品をロードして Web サイトの速度を最適化するのに問題があります。ホームページに 5 つのタブがあります。それらをAjaxでロードしたい。このために、すべての製品タブを含むカスタム ページを作成しました。ホームページには、smarty を使用してカスタム ブロックを追加し、そのページを Ajax で呼び出します。現在、ページはホームページに正常にロードされていますが、[ウィッシュリストに追加] ボタンをクリックすると、イベントが 2 回実行されます。そのため、ウィッシュ リストのボタンをクリックするたびに、製品が既に存在するというメッセージが表示されます。実際、このボタンは 1 回のクリックで 2 回実行されています。

カスタムブロックの私のコードは

{literal}
<script>
var count = 1; 
$(window).unbind('scroll');
$(window).scroll(function(){
if(count==1){
$('.span16.homepg-product-block').html("<img class='loadimg' src='images/common_imgs/loading.gif' style='margin:15px auto 25px 43%'>");

$.ajax({
    url:'/ajax-products',
        type:'GET,
        success: function(data){
        $('.span16.homepg-product-block').html(data);

        }
});}
count++;
});

</script>
{/literal}
4

2 に答える 2

0

組み込み関数を使用して ajax リクエストを作成することをお勧めします。ほとんどの場合、彼らは問題を解決します。例えば

function fn_change_tab(obj_id, id, option_id)
{
    var $ = Tygh.$;
    var url = fn_url('products.get_tab_content);

    $.ceAjax('request', url, {
        result_ids: 'my_block_content',
        caching: true,
        force_exec: true,
        method: 'get'
    });
}

テンプレートと返されるコンテンツには、次の形式の div が含まれている必要があります。

<div id="my_block_content">
    YOUR CONTENT HERE
<!--my_block_content--></div>

このコンテンツのみ更新されます

于 2015-08-03T12:16:50.047 に答える
0

ページサイズを小さくする新しい方法を手に入れました。すべての画像を読み込むには、遅延読み込み jquery プラグインを使用するだけです。

于 2015-08-05T04:45:49.187 に答える