OpenCart 3如何在全页加载后加载每个页面的内容(javascript)?
How to load the content of each page in OpenCart 3 after full page load (javascript)?
如果有人能指出我在这个问题上的正确方向,我将不胜感激。
我正在尝试优化我的 OpenCart 项目的页面加载速度。为此,我想在 javascript 之后像这样在 header.twig:
中加载每个页面的内容(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
问题是页面不同。我不知道如何管理所有页面。
解决方案
为了解决这个问题,我从页眉、页脚等中删除了所有 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
的数量检查它是否没有重复:
{% 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 %}
....
如果有人能指出我在这个问题上的正确方向,我将不胜感激。
我正在尝试优化我的 OpenCart 项目的页面加载速度。为此,我想在 javascript 之后像这样在 header.twig:
中加载每个页面的内容(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
问题是页面不同。我不知道如何管理所有页面。
解决方案
为了解决这个问题,我从页眉、页脚等中删除了所有 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
的数量检查它是否没有重复:
{% 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 %}
....