如何在整页加载(javascript)后加载OpenCart 3中每个页面的内容?

时间:2018-01-28 12:08:01

标签: php optimization opencart opencart-3

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

我正在尝试优化OpenCart项目的页面加载速度。为此,我想在header.twig中加载javascript onload之后加载每个页面的内容(product/categoryproduct/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,则问题是页面不同。我不知道如何管理所有页面。

1 个答案:

答案 0 :(得分:1)

解决方案

要解决此问题,我从页眉,页脚等中删除了所有window.onload = function()。相反,我将其添加到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相关stylejavascript,并按products/limit = page的数量检查它没有重复:< / p>

{% 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 %}
....