我想为我的 Web 应用程序使用 Content Site Protection。如果您还没有听说过,简而言之:它将允许我禁用任何嵌入到我的 Web 应用程序中的 javascript,从而有助于防止 XSS。
结果是,我所有的 javascript 代码都必须在外部文件中。
大多数javascript“库/框架”代码已经存在,但通常我的页面将包含至少几行JS代码,实例化与特定页面相关的组件。
例如,我有一个假设的注册页面。在注册页面的底部,我有以下代码:
var registrationForm = new MyApp.registrationValidator($('.regform'));
registrationForm.init();
该假设代码获取注册表单的引用,并且可以注册所有验证代码。
现在我必须将此代码移动到外部文件。我可以:
选项 A:为每个页面创建一个小的 .js 文件,该文件只执行该页面的特定代码。
- 优点 - 简单且相对较快
- 缺点 - 每个页面都有一个额外的 js 文件,我更希望能够将我的所有 javascript 最小化到一个文件中以减少请求。
选项 B:在 javascript 文件中执行我所有的“实例化代码”。我只会检测页面上是否有任何“.regForm”css 类,并且仅在它们出现在页面上时才实例化我的对象。
- 优点 - 实例化的单一位置。如果页面上的组件具有正确的 css 类,它们就会神奇地开始工作。
- 缺点 - 如果我的应用程序增长了很多,那么特定页面可能不需要大量初始化代码。
选项 C:给我的<body>
标签一个 id 或类,并基于一个大开关执行正确的代码。
- 优点:仍然可以压缩为单个 .js 文件,我不需要每页一个 .js 文件。
- 缺点:我想我觉得这有点难看。
总而言之,选项 B 是最好的,如果不是因为我觉得拥有大量初始化代码是个坏主意的话。
我主要想知道的是,你有没有遇到过这种情况,你是怎么解决的?