在我們的Magento網站上,我們有一個超級菜單,當鼠標懸停在菜單中的父項li
元素上時出現。用於Mega Menu的JavaScript加載速度緩慢
但是,如果您在頁面加載時立即將鼠標懸停在菜單上,則超級菜單顯示不正常。
如果用戶網絡連接不好,情況會更糟糕。
檢查鉻檢查器後,我看到這是因爲類over
未添加到父li
。如果您等待一兩秒鐘並將&移出父li
元素,則會添加over
類,並且將mega菜單的display
css屬性更改爲block
。
我發現javascript增加了over
類,它是我們使用script.js的主題的一部分。
// CODE OMMITED FOR BREVITY
jQuery(window).load(function() {
// CODE OMMITED FOR BREVITY
if(jQuery('#nav-wide').length){
jQuery('#nav-wide li.level-top').mouseenter(function(){
jQuery(this).addClass('over');
if(mobileDevice == true){
document.addEventListener('touchstart', wideMenuListener, false);
}
});
jQuery('#nav-wide li.level-top').mouseleave(function(){
jQuery(this).removeClass('over');
});
// CODE OMMITED FOR BREVITY
}
// CODE OMMITED FOR BREVITY
});
任何想法爲什麼這個JavaScript會花這麼長的時間來加載?或者我可以改進它?
沒有回答你爲什麼需要這麼長時間來加載......你絕對可以放在一個半透明屏幕覆蓋,顯示了加載GIF。 js完全加載後隱藏它。 –
我同意@Ji_in_coding ---除非你做了一些嚴肅的代碼/服務器優化,否則大多數Magento商店的加載速度都很慢。最好的選擇是一個「加載」覆蓋,直到網站完全加載。 - Magento緩慢加載的「原因」很多。我冒昧地說,這不是「只是」加載緩慢的JS,而是服務器響應緩慢,由於巨大的吸引Magento放在它.. – Zak