如果有人能指出我在这个问题上的正确方向,我将不胜感激。
我正在尝试优化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
,则问题是页面不同。我不知道如何管理所有页面。
答案 0 :(得分:1)
解决方案
要解决此问题,我从页眉,页脚等中删除了所有window.onload = function()
。相反,我将其添加到common/home
,product/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
的数量检查它没有重复:< / 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 %}
....