Я новичок в cs cart 4.2.4, у меня возникли проблемы с загрузкой продуктов на домашней странице с помощью AJAX для оптимизации скорости сайта. У меня есть 5 вкладок на домашней странице. Я хочу загрузить их с помощью Ajax.
Для этого я создал пользовательскую страницу со всеми вкладками продукта. На домашней странице я добавил пользовательский блок с smarty и назвал эту страницу Ajax.
Теперь страница успешно загружается на домашней странице, но когда я нажимаю кнопку «Добавить в список желаний», событие запускается дважды. поэтому каждый раз, когда я нажимаю на кнопку списка пожеланий, отображается сообщение о том, что продукт уже существует. На самом деле эта кнопка запускается два раза за один клик.
мой код в пользовательском блоке
{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}
Мы предлагаем вам использовать встроенные функции для выполнения запросов 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>
Только этот контент будет обновлен
Я получил новый способ уменьшить размер моей страницы. Я просто использую плагин lazy load jquery для загрузки всех изображений.