Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Javascript和CSP -最佳实践

Javascript和CSP -最佳实践
EN

Stack Overflow用户
提问于 2012-02-06 04:37:45
回答 2查看 1.2K关注 0票数 5

我想为我的web应用程序使用内容站点保护。如果你还没有听说过它,简而言之:它将允许我禁用我的web应用程序中的任何嵌入式javascript,这有助于防止XSS。

结果是,我所有的javascript代码都必须在外部文件中。

大多数javascript‘库/框架’代码已经是,但通常我的页面至少会包含几行JS代码,实例化与特定页面相关的组件。

例如,我有一个假设的注册页面。在注册页面的底部,我有以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var registrationForm = new MyApp.registrationValidator($('.regform'));
registrationForm.init();

此假设代码获得对注册表单的引用,并可以注册所有验证代码。

现在,我必须将此代码移动到外部文件中。我可以:

选项A:为每个页面创建一个小的.js文件,它只执行特定于该页面的代码。

  • 优点-简单且相对快速
  • 缺点--这是一个额外的js文件,对于每个页面,我更希望能够将我所有的javascript最小化到一个文件中,以减少请求。

选项B:在javascript文件中执行我的所有“实例化代码”。我只会检测页面上是否有“.regForm”css类,并且只有当对象出现在页面上时才实例化它们。

  • 优点-实例化的单一位置。如果组件具有正确的css类,页面上的组件将神奇地开始工作。
  • 缺点--如果我的应用程序增长了很多,就会有很多初始化代码,这对于特定的页面来说可能是不必要的。

选项C:给我的<body>标记一个id或类,并根据一个大开关执行正确的代码。

  • 优点:仍然可以压缩为单个.js文件,而且我不需要每页都有一个.js文件。
  • 缺点:我想我觉得这有点丑。

总之,选项B是最好的,如果不是因为我觉得有大量的初始化代码是个坏主意的话。

我主要想知道的是,你对这种情况有经验吗?你是如何解决的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-07 00:29:00

选项D(A和B的变体):查看部署系统,它将编译(并缩小)多个javascript源文件为一个,只考虑到该页面所需的文件。

对于PHP而言,亚瑟蒂就是这样一个系统。

票数 3
EN

Stack Overflow用户

发布于 2012-02-06 04:41:07

如果您愿意使用像jQuery这样的框架(动态加载和执行外部javascript),则可以将A和B的优点结合起来。每个页面都将加载相同的.js,这将决定(通过存在或不存在dom元素)动态加载哪些其他.js文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9160223

复制
相关文章
13个JavaScript最佳实践
在所有的编程语言中,JavaScript是目前最受欢迎的。它是一种轻量级的编程语言,具有一流的函数功能。通过掌握JavaScript,您可以在Web开发领域中提升自己的职业发展。此外,学习它的最佳实践也将推动您的职业发展。在这个简短的故事中,我们将了解一些非常有帮助的JavaScript特性,这些特性将提升你作为JavaScript程序员的能力。
前端小智@大迁世界
2023/07/22
2790
11个JavaScript代码重构最佳实践
模式和重构之间有着一种与生俱来的关系。从某种角度来看,设计模式的目的就是为许多重构行为提供目标。
coder_koala
2020/10/19
1.1K0
11个JavaScript代码重构最佳实践
模式和重构之间有着一种与生俱来的关系。从某种角度来看,设计模式的目的就是为许多重构行为提供目标。
前端达人
2020/10/22
6610
前端代码标准最佳实践:javascript篇
前言 最近一直重构项目的前端代码,也参考了各种前端代码的最佳实践,目的是让前端的HTML,CSS,JavaScript代码更符合标准,有更好的性能,更好的可维护性,尝到了重构后的甜头,也萌生了写这个系列博客的念头。前端代码有其固有的灵活性,这就导致了目前前端代码非常混乱的局面,本系列文章希望能起到抛砖引玉的作用,让更多的人重视前端代码的质量,编写更标准的前端代码。 本系列文章共有三篇,分别讨论HTML,CSS,Javascript,本篇将讨论Javascript。 目前,Javascript已广泛运用于前端
葡萄城控件
2018/01/10
1.2K0
IIoT标准和最佳实践
在新的收入来源和前所未见的洞察力之间,工业物联网(IIoT)承诺了一系列巨大的好处,如果做得好,可以为持久成功奠定基础。通过大数据分析、自动化和实时计算,可以从每一个连接的传感器、设备和机器上收集到商业价值。因此,各组织都急于为自己开发这些好处。
用户2605137
2022/04/12
3290
【GIT最佳实践】--GIT最佳实践
提交消息规范是在使用Git进行版本控制时的一项最佳实践,它有助于组织和标准化提交消息,使团队更容易理解和管理项目的变更历史。以下是关于Git提交消息规范的最佳实践:
喵叔
2023/10/09
3910
集成测试类型和最佳实践
大爆炸法是最常见的集成测试类型之一。本质上,您要测试的所有单元都被粉碎在一起并同时进行了测试。现在,这对于小型软件项目或完成其他形式的测试之后非常有用。
FunTester
2020/02/17
1.5K0
ThreadLocal实现原理和最佳实践
适用于每个线程需要有自己单独的实例,实例需要在多个方法中共享,但不希望被多线程共享
十毛
2019/12/12
7550
Airflow DAG 和最佳实践简介
由于组织越来越依赖数据,因此数据管道(Data Pipeline)正在成为其日常运营的一个组成部分。随着时间的推移,各种业务活动中使用的数据量急剧增长,从每天兆字节到每分钟千兆字节。
DevOps云学堂
2022/10/04
3.2K0
Airflow DAG 和最佳实践简介
接口设计技巧和最佳实践
你的响应应该是在代码中严格定义的嵌套数据业务模型,不要依赖数据库查询结果映射,或者其他操作
公众号_松华说
2019/07/16
1.4K0
接口设计技巧和最佳实践
《JavaScript 高级程序设计》阅读笔记 1:最佳实践
可维护性 可维护性包括:可理解性、直观性、可适应性、可扩展性和可调试性 代码约定: 可读性(缩进、注释); 变量和函数命名(有意义的命名); 变量类型透明(var a =null var a = iSpeed) 松散耦合: HTML 或者 CSS 与 JavaScript 的解耦(如 CSS 仍然保留样式信息,通过改变类名来改变样式); 事件监听器和应用逻辑的解耦(监听器只发挥监听作用,而将应用逻辑独立成可以复用的函数) 编程实践: 尊重对象所有权(尽量不要改动原生对象); 尽量避免创建全局变量和函数;
Chor
2019/11/07
4580
jQuery的编码标准和最佳实践
不知道在哪里看到了这篇关于jQuery编码的文章,挺实用的,恰好最近在研究jQuery的基础知识,今天打开收藏夹来翻译一下,原文的英语不难,但是内容很实用,可能有大神已经翻译过了,大家看精华就行了。
跟着阿笨一起玩NET
2018/09/19
1K0
容器安全最佳实践和常见威胁
STRIDE是一个流行的威胁建模框架,在这里我将分享映射到该框架的容器威胁的非详尽列表。
用户5166556
2023/03/18
5130
容器安全最佳实践和常见威胁
Java最佳实践和建议:设计模式
设计模式是软件开发过程中经常出现的问题的常见解决方案。这些解决方案提供了优雅且在大多数情况下解决与对象创建,资源分配,简化代码等相关的不同问题的最有效方法。需要维护它们的上下文,而解决方案本身需要定制,根据业务逻辑。
lyb-geek
2022/03/10
7310
性能最佳实践:查询模式和分析
欢迎阅读MongoDB性能最佳实践系列博客的第二篇。在本系列中,我们将讨论在大规模数据下实现高性能,需要在许多重要维度上进行考虑的关键因素,其中包括:
MongoDB中文社区
2020/09/01
1.5K0
NameNode Metadata备份和恢复最佳实践
对于未启用HA的NameNode集群,fsimage和edits将存储在活动的NameNode和SecondNameNode上,建议定期备份fsimage和edits。
Fayson
2018/08/17
1.9K0
NameNode Metadata备份和恢复最佳实践
Nginx Proxy Cache原理和最佳实践
当第一个用户(蓝)访问网站,他的请求首先会到NGINX PROXY SERVER,随后NGNIX发往后端服务器(灰),后端会将请求的响应首先发往NGINX,由其返回给用户(蓝色),如果这个响应是可以缓存的,则NGINX会保留一份响应副本,当其他用户(橙色)发起相同的request请求时,NGINX会根据request请求的内容是否存在于缓存中,来直接返回给用户,不再经过后端。
JavaEdge
2021/02/23
2.7K0
Nginx Proxy Cache原理和最佳实践
V8 最佳实践:从 JavaScript 变量使用姿势说起
在弱类型语言 JavaScript 中,变量上能有多少优化窍门?本文从最基础的变量类型说起,带你深入 V8 底层类型变换与优化机制。真正的老司机,一行代码可见一斑。以后你可以说,我写的代码,连变量声明都比你快… 本文参考 V8 开发者博客中关于 React 性能断崖的一篇分析,细节很多,整理一下与大家分享。 JavaScript 作为弱类型语言,我们可以对一个变量赋予任意类型值,但即使如此,对于各类 JavaScript 值,V8 仍需要对不同类型值应用特定的内存表示方式。充分了解底层原理后,我们甚至可以
腾讯VTeam技术团队
2020/10/14
1.2K0
Docker 最佳实践
1、每个容器只运行一个进程 2、配置和数据文件应该单独存储与备份。 3、使用.dockerignore 文件。在镜像构建过程中,Docker 会将Dockerfile 所在文件夹下的内容(即build context)复制到构建环境中。使用.dockerignore 文件可以将指定文件或者 文件夹在镜像构建时从文件复制列表中排除。如果你不使用.dockerignore 文件,请确 保在只有所需最小集合的文件夹下构建镜像。
用户5760343
2019/10/30
6620
Wire 最佳实践
以下是我们推荐在使用 Wire 时应遵循的最佳实践。这个列表会随着时间的推移而增长。
孟斯特
2023/10/16
2650
Wire 最佳实践

相似问题

Rails 5.2:设置CSP当前的最佳实践

10

JavaScript和事件-最佳实践

41

Javascript、视图和事件最佳实践

25

Rails内联Javascript和最佳实践

515

Javascript代码分析和最佳实践

41
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文