0

我可以在 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' });
    }
};

案例:mywebsite.com/PageA 在 condition1 通过时正确呈现(所有脚本都正确加载并执行)

问题:但是当条件 1 失败时,我得到了 PageB 渲染,PageB.ejs 中的 javascripts 被渲染但不执行,比如说,在 $document.Ready() 上。奇怪的是,如果我在浏览器中“刷新”已经呈现的 PageB,那么 JavaScript 就会正确执行。

作为一条信息:我在所有“< script >...”中使用 defer="defer" 标签

我在这里想念什么?

4

1 回答 1

0

您的问题完全出在客户端。目前仅 Internet Explorer 和 Firefox 支持属性“defer”。我认为您的问题是脚本以错误的顺序加载。检查您的浏览器控制台是否有错误。当您重新加载页面时,将从浏览器缓存中加载脚本。它更快。因此,在这种情况下可能不会出现错误。

于 2012-06-20T08:56:40.930 回答