0

如果有人能指出我在这个问题上的正确方向,我将不胜感激。

我正在尝试优化我的 OpenCart 项目的页面加载速度。为此,我想在 header.twig 中像这样在 javascript onload 之后加载每个页面的内容(product/category, product/search, ...):

window.onload = function() {
    console.log('page loaded');

    $.post( window.location.href, { loaded: true })
        .done(function( data ) {
            alert( "Data Loaded: ");
    });
}

在php方面,我尝试了这样的代码,但根本不成功。

if (isset($this->request->get['manufacturer_id']) && isset($_POST['loaded'])) {
...

如果我想使用callback问题是页面不同。我不知道如何管理所有页面。

4

1 回答 1

1

解决方案

为了解决这个问题,我window.onload = function()从页眉、页脚等中删除了所有 s。相反,我将其添加到common/homeproduct/search等中,并且效果很好。

window.onload = function() {

var productClass = 'product-layout product-full col-lg-3 col-md-4 col-sm-6 col-xs-12';

$('#moreHolder').css("display", "block");

$.post('index.php?route=product/productx', { class: productClass },
function(data) {
     if(data.length>10){
        $(data).insertBefore($('#moreHolder'));
     }
})
.always(function() {
    $('#moreHolder').css("display", "none");
});

我还在每个页面的第一次加载时添加了swiper相关的style和,并通过没有重复 javascript的数量来检查它:products/limit = page

{% if products %} 
{% if page <= 1 %} 
<link href="catalog/view/javascript/jquery/swiper/css/swiper.min.css" rel="stylesheet" type="text/css">
<link href="catalog/view/javascript/jquery/swiper/css/opencart.css" rel="stylesheet" type="text/css">
<script src="catalog/view/javascript/jquery/swiper/js/swiper.jquery.js" type="text/javascript"></script>
{% endif %} 
{% for product in products %}
....
于 2018-01-29T12:09:44.803 回答