我可以在route / index.js中使用以下配置吗?
exports.PageA = function(req, res) {
...
...
if(req.method == 'GET') {
if (condition1) {
//PageA has 2 .js files
res.render('PageA', { title: 'A', layout: false});
}
else {
//PageB has 2 + 2 .js files
res.render('PageB', { title: 'B', layout: false});
}
}
else {
res.render('PageC', { title: 'B', layout:'some_other_layout' });
}
};
案例:当条件1通过时,mywebsite.com/PageA正确呈现(所有脚本都已加载并正确执行)
问题:但是当condition1失败时,我得到了PageB渲染,PageB.ejs中的javascripts被渲染但未执行,例如,在$ document.Ready()上。 奇怪的是,如果我'刷新'已经在浏览器中呈现的PageB,则javascripts会正确执行。
作为一条信息:我在所有“< script> ...”中使用defer =“defer”标签
我在这里缺少什么?
答案 0 :(得分:0)
您的问题完全在客户端。此时仅在Internet Explorer和Firefox中支持属性“延迟”。我认为您的问题是脚本以错误的顺序加载。检查浏览器控制台是否有错误。重新加载页面时,脚本将从浏览器缓存加载。它更快。因此,在这种情况下可能不会出现错误。