首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

嘿,前端的CSP & CSP如何落地,了解一下?

CSP(Content-Security-Policy)是一个HTTP response header, 它描述允许页面控制用户代理能够为指定的页面加载哪些资源, 可防止XSS攻击 使用方式: Content-Security-Policy......等等,其他参考MDN 这些src规定了页面只能加载里面所设置的font、iframe、img、script...这些资源,比如有一个html页面的response header是: Content-Security-Policy...之外的图片的时候,将会阻塞加载并在控制台报错,再上报到https://a.b.c/report上 image.png 上报的数据就是这些,浏览器帮你拼装好了。...因此页面改造第一步是先通过仅仅上报的头来观察一段时间,看看哪些资源哪些case是不符合CSP的,漏掉的加上,不合理的干掉 初始化资源指令,给default-src一个'self',资源都默认走本地。...;一些是不太优雅或者有风险的case,自己再另外衡量要不要换另一种方式引入或者去掉 另外,如果有iframe、worker、websocket这些的,也需要配置一下CSP 第二阶段 观察一段时间,自己的上报站点如果有

2.8K30

何为 content-visibility?

我们首先来看看 content-visibility 如何具体使用。 content-visibility: visible 是默认值,添加没有任何效果,我们就直接跳过。...好,我们实际开始进行滚动,看看会发生什么: 由于下方的元素滚动的过程中,出现在视口范围内才被渲染,因此,滚动条出现了明显的飘忽不定的抖动现象。...当然,向下滚动的过程中,上方消失的已经被渲染过且消失视口的元素,也会因为消失视口中,重新被隐藏。因此,即便页面滚动到最下方,整体的滚动条高度还是没有什么变化的。...我们来看看我们通常对于 LazyLoad(懒加载)的一个定义。 LazyLoad:通常而言,LazyLoad 的作用在于,当页面未滚动到相应区域,该区域内的资源(网络请求)不会被加载。...对搜索功能影响的探究 相应设置下 CSS: .paragraph, .text { content-visibility: auto; } 好,如此一来,页面刷新

1.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

2017移动前端的一些总结web前端 —— 移动端知识的一些总结一.css部分二.js部分

另外一种情况(一般页面内容很少时 iphone5及以上常发生),当输入框弹出时 fixed元素挤到输入框上,当输入框消失时, fixed元素并没有随着输入框的消失而回到底部,这是因为整个视窗的高度还保持...减去键盘的 高度,需要手动去触发视窗高度回到正常,然后试了很多方法都没成功,后来的方案是输入框消失时给页面加隐形的很大的 padding比如 1000px并在 30ms改为正常 13.禁止用户选中文字...以上面的例子来说,解决方案视情况而定:  ① tap时遮罩渐隐消失,这个过程超过 400ms就不会穿透到下一层去了  ②  touchend事件回调中加入 preventDefault, 并在下一层中加上...(这个没用过)  ③ 有的时候比如弹出一个 iphone上滑动出来的层,点击黑色半透明区域弹出层消失,这种可以黑色区域绑定 touchend也是和 tap差不多的效果 7.当弹窗出现时,想禁止屏幕的滑动... iframe, src为其他的网址等,当在微信浏览器打开时,如果 iframe里的页面过大,则 iframe的 src不能加载(具体多大不知道,只是遇到过)。

3.7K40

加点JavaScript魔法

初始化调用接受许多配置弹出窗口的选项,包括传递想要在弹出窗口中显示的内容,以及使用什么方法触发弹出窗口出现消失(单击,悬停在元素上等),如果内容是纯文本或HTML,那么文档中可以找到更多的选项。...03 页面加载完成执行函数 很明显,我将需要在每个页面加载立即运行一些JavaScript代码。我要运行的函数将搜索页面中用户名的所有链接,并使用Bootstrap中的弹出窗口组件配置它们。...jQuery JavaScript库作为Bootstrap的依赖项加载,因此我将利用它。当使用jQuery时,你可以用$(...)封装来注册一个函数,函数将会在页面加载完毕运行。...我可以将它添加到app/templates/base.html模板中,以便它可以应用程序的每个页面上运行: app/templates/base.html:页面加载完毕运行函数 ......这个函数将在页面加载完成时运行,并且当完成时,将为所有页面配置悬停和弹出行为。现在我要集中精力来寻找链接。 回顾第十四章,实时翻译中被调用的HTML元素具有唯一的ID。

3.9K10

用Python写静态博客

每当您保存更改时,它甚至会自动重新加载并刷新您的浏览器。 易于定制 通过自定义主题,您的项目文档以您希望的方式查找。...MkDocs附带一个内置的开发服务器,可以您在处理文档时预览文档。...尝试菜单项并在页面之间来回导航。然后点击 Search。将出现一个搜索对话框,允许您搜索任何页面上的任何文本。请注意,搜索结果包括网站上每次出现的搜索字词,并直接链接到搜索字词所在页面的部分。...要使用其他图标,请img您的子目录中创建一个子目录,docs_dir然后将自定义favicon.ico文件复制到该目录。MkDocs将自动检测并使用该文件作为您的favicon图标。...一段时间,文件可能会从文档中删除,但它们仍将驻留在site目录中。要删除这些陈旧文件,只需mkdocs 使用--clean开关运行即可。

1.5K20

知识整理之CSS篇

opacity: 0; CSS3属性,设置0可以元素透明。 filter: blur(0); CSS3属性,将一个元素的模糊度设置为0,从而元素消失“”页面上。...如果使用import方法对CSS进行导入,会导致某些页面Windows 下的Internet Explorer出现一些奇怪的现象:以无样式显示页面内容的瞬间闪烁。...此样式表被下载和解析,将重新渲染页面,也就出现了短暂的花屏现象。 解决方法: 使用link标签将样式表放在文档head中 什么是外边距重叠? 重叠的结果是什么?...加载顺序区别 加载页面时,link标签引入的CSS能被并行加载;@import引入的CSS将在页面加载完毕加载。...加载性能 建立公共样式类,减少代码体积 利用CSS继承,减少代码体积 合并属性,减少代码体积 慎用@import引入CSS,建议使用link, 因为后者页面加载时一起加载,前者是等待页面加载完成之后再进行加载

1.5K20

你不可错过的前端面试题(二)

一、前端需要注意的SEO (1)合理的 title、description 和 keywords,他们的搜索权重逐个减小 title 强调重点即可,重要关键词出现不要超过2次,而且要靠前,不同页面 title...(2)页面加载的时,link会同时被加载;而@import引用的CSS会等到页面加载完再加载。 (3)link方式的样式的权重 高于 @import的权重。...十七、初始化CSS样式 (1)浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异。...优点 (1)减少HTTP请求数,极大地提高页面加载速度 (2)增加图片信息重复度,提高压缩比,减少图片大小 (3)更换风格方便,只需一张或几张图片上修改颜色或样式即可实现 3....区别 display:none; visibility: hidden; 会元素完全从渲染树消失,渲染时不占据任何空间 不会元素从渲染树消失,渲染时元素继续占据空间,只是内容不可见 非继承属性,子孙节点消失由于元素从渲染树消失造成

92650

每天10个前端小知识 【Day 10】

使用Promise封装一个异步加载图片的方法 这个比较简单,只需要在图片的onload函数中,使用resolve返回一下就可以了。...所以可能会出现这样的情况,就是当前执行栈执行的时间很长,导致事件队列里边积累多个定时器加入的事件,当执行栈结束的时候,这些事件会依次执行,因此就不能到间隔一段时间执行的效果。...常见场景 情景一:蒙层点击穿透问题,点击蒙层(mask)上的关闭按钮,蒙层消失发现触发了按钮下面元素的click事件。...单线程就意味着,所有任务需要排队,前一个任务结束,才会执行一个任务。如果前一个任务耗时很长,一个任务就不得不一直等着。...同步任务指的是,主线程上排队执行的任务,只有前一个任务执行完毕,才能执行一个任务;而异步任务指的是,不进入主线程、而进入"任务队列"(task queue)的任务,只有主线程执行完毕,主线程去通知"

12710

照虎画虎——简单WeUI模板UX设计学习

这个模板的重点是一个页面,下面打开这个模板,我们来具体看一下这个页面如何设计的。 基础的组件摆放就不多说了,主要看交互。...首先来看上半个页面,中间黄色的区域其实是两个重合放置的“组”,这两个组分别对应两种情况:已完成和数据加载中。点击“成功提示”,出现“已完成”提示框,并在1.5秒之后自动消失。...点击“加载中提示”,数据加载中的提示框产生相同的交互动作。好的,效果我们已经看到了,那么,问题来了:如何实现呢?...那么如果设置这个出现的组自动消失呢?其实很简单,上一步的操作稍加改动,就可以实现自动消失了。 ?...这样就可以点击“成功提示”的1.5秒使“已完成”自动消失了。 ? 同样的方法,我们设置到“数据加载中”即可。 嗯,就这样。我们来看这个页面的下半页。

79130

照虎画虎——简单WeUI模板UX设计学习

这个模板的重点是一个页面,下面打开这个模板,我们来具体看一下这个页面如何设计的。 基础的组件摆放就不多说了,主要看交互。...首先来看上半个页面,中间黄色的区域其实是两个重合放置的“组”,这两个组分别对应两种情况:已完成和数据加载中。点击“成功提示”,出现“已完成”提示框,并在1.5秒之后自动消失。...点击“加载中提示”,数据加载中的提示框产生相同的交互动作。好的,效果我们已经看到了,那么,问题来了:如何实现呢?...那么如果设置这个出现的组自动消失呢?其实很简单,上一步的操作稍加改动,就可以实现自动消失了。 ?...这样就可以点击“成功提示”的1.5秒使“已完成”自动消失了。 ? 同样的方法,我们设置到“数据加载中”即可。 嗯,就这样。我们来看这个页面的下半页。

1K50

网站建设(二)通用--页面加载时的loading效果

有人问我:有些页面刚进入的时候,会有loading效果,过一会儿,loading效果消失页面展示出来。这个效果如何实现呢?...撇开如何优化加载资源不谈,页面加载时,不论是有过多的加载资源,还是有一些提前处理逻辑。这一过程可能不希望用户看到,显示一个友好的loading会比较好一点。...当页面处理完毕,再将loading移除。 要想实现这个效果,首先要明白一个网页从加载(loading效果出现),到完全加载完成(loading效果消失)的整个过程。也就是何时出现,何时消失。...loading消失 页面全部加载完成, window.onload = function(){ // 清除loading效果 } pace.js 也是一个不错的选择,这个之后会介绍到...loading出现 该网页的loading出现时由最开始的dom元素控制的,其他元素的样式有一个 overflow: hidden. loading消失 页面的最后,也就是页面loading完成,隐藏掉

2.1K20

聊一聊H5营销页面的性能优化

不过 SPA 时代,页面常常一开始是先显示一个加载图标,此时,FCP 就很难反映出页面初次载入直到 Web 能够提供使用的那个时间点。...衡量视觉稳定性 视觉稳定性这个比较好解释:你访问一个web页面的时候,有没有碰到阅读文章时页面突然滚动或者本应点击按钮却点到了别的区块: 出现这种情况的罪魁祸首通常是由于异步加载资源或将 DOM 元素动态添加到现有内容上方导致的...虽然背景色会很快完成绘制,但是实际的内容和交互可能要花很长的时间去加载,因此,白屏时间过长,会用户认为我们的页面不能用或可用性差。 那白屏时间如何计算呢?...首屏时间计算主要是基于getBoundingClientRect和MutationObserver,通过观察页面一段时间内DOM变化的情况,然后通过判断是否首屏显示进行数据过滤,找出最大一张图片的加载时间...实现方案很简单,配置活动上传图片就存储图片的宽高,页面加载时获取对应图片宽高。

75710

Python网络爬虫实战使用Requests、Beautiful Soup和Selenium获取并处理网页数据

示例:处理登录认证有些网站需要用户登录才能访问某些页面或获取某些内容。下面是一个示例,演示了如何使用 Selenium 模拟登录认证,然后爬取登录的内容。...以下是一个简单的示例,演示了如何查找登录页面中的某些元素并提取它们的文本内容:# 爬取登录页面的内容welcome_message = driver.find_element(By.XPATH, "...使用 implicitly_wait() 方法等待一段时间,确保页面加载完成。使用 find_element() 方法查找登录页面中的元素,并提取它们的文本内容。输出提取到的内容。...然而,实际情况中,我们可能需要更安全和更灵活的方法来处理用户凭据。下面是一个示例,演示了如何使用 getpass 模块来安全地输入密码,并且如何从外部文件中读取凭据信息。...等待一段时间,确保页面加载完成driver.implicitly_wait(10)# 爬取登录页面的内容welcome_message = driver.find_element(By.XPATH,

1.2K20

ViewModels and LiveData- Patterns + AntiPatterns

img 将视图(Activity或Fragment)的引用传递给ViewModel是一个严重的风险。让我们假设ViewModel从网络上请求数据,并且数据一段时间回来。...Observer Pattern img Android中设计表现层的一个非常方便的方法是View(Activity或Fragment)观察(订阅)ViewModel的变化。...视图如何区分正在加载的数据、网络错误和一个空列表? 你可以从ViewModel中暴露出一个LiveData。例如,MyDataState可以包含关于数据是否正在加载、是否已经成功加载或失败的信息。...img 如果你尝试这种方法,会有一个问题:如果你不能访问LifecycleOwner,你如何从ViewModel订阅Repository?...你的Activity或Fragment告诉ViewModel何时开始加载数据。

1.1K30

【译】怎样处理 Safari 移动端对图片资源的限制

当移动端的 Safari 浏览器加载了 8 到 10MB 的图片数据,就会停止加载其他图片,甚至浏览器还会崩溃。 大多数网站都不会受到这条限制的影响,因为保持页面合理的大小通常是一种很聪明的做法。...(img); 但是然并卵,因为某些原因,将图片从 DOM (或者一个包含图片的元素)中删除时,图片的真实数据并没有释放。...我已经彻底测试过这种方法,下面几个方面是需要注意的: 将 src 属性设置为其他图片,图片数据不会立即释放,需要一段时间垃圾回收器来真正地释放内存。...移动端 Safari 触发限制,即便删除一部分或者全部已经加载的数据,Safari 也不会再加载额外的图片,这种情况即便在切换到其他页面时也继续存在。...(如果你只是删除图片元素, iPad 加载8张图片后会停止继续加载,如果用 Zepto 的 assets 插件,会持续加载。)

1.5K00

用 PhantomJS 邮件报表图文并茂(一)

部门日常业务中,每天都会产生各种各样的数据。为了抽象的数据,更加调理方便人阅读,就需要将数据整理成表格、图表等形式,以更生动的面貌展示人们眼前。...); }); 打开图表页面控制台执行这段脚本页面里的所有 canvas 都被替换成了静态截图。...所以还需要给这段截图脚本加个延时处理,在所有图表完全展示进行截图。我们一般简单设定个2-3秒即可。...phantomJS 脚本实现 基本思路出来了,那么如何把它运用在我们生成报表邮件的服务器上呢? 使用 PHPMailer 和 nodemailer 等组件发送邮件时,都是提供一个本地路径作为附件参数。...fs.absolute(outputDir + '/' + system.args[1]); page.open(filePath, function (status) { // 检查页面是否正常加载完毕

79120

我们应该合并网站上的CSSJS文件吗?

2.页面感知性能可能会受到影响 逐步加载的网站通常被认为比最初空白一段时间,然后一次加载所有内容的网站更快。 这是因为逐步加载网站会给你的用户提供视觉反馈,你的页面正在运行中。...如果CSS/JS文件是单独的(即,不合并) ,浏览器可能有机会单独处理它们,并在处理它们立即开始渲染,而不是单个长阻塞事件。...这样,访问者也可以尽早开始看到页面上的内容,他们放心,你的页面正在运行中 3.CSS/JS组合可能会破坏你的网站 CSS/JS文件分开时很好,但在组合成单个文件时,它们可能不会很好地发挥。...即使东西视觉上看起来很好,一些引擎盖下的功能可能已经坏了,你可能要到很久以后才会发现。例如,按钮页面上不起作用,或页面元素消失,或滑块无法按设计工作,等等。.../或样式表) 结尾 CSS/JS组合是一个速度优化方法,早在HTTP/1.1时代就有意义了,但随着HTTP/2的出现,它不再那么重要了。

1.5K20

腾讯前端面试题

所以总结:精度丢失可能出现在进制转换和对阶运算中 ----问题知识点分割线---- img的srcset属性的作⽤?响应式页面中经常用到根据屏幕密度设置不同的图片。...这时就用到了 img 标签的srcset属性。srcset属性用于设置不同屏幕密度下,img 会自动加载不同的图片。...当使用构造函数新建一个对象,在这个对象的内部将包含一个指针,这个指针指向构造函数的 prototype 属性对应的值, ES5 中这个指针被称为对象的原型。...两者区别如下:(1)渲染树中display:none会元素完全从渲染树中消失,渲染时不会占据任何空间;visibility:hidden不会元素从渲染树中消失,渲染的元素还会占据相应的空间,只是内容不可见...503 Service Unavailable 服务器当前不能够处理客户端的请求,一段时间之后,服务器可能会恢复正常。大概还有一些关于http请求和响应头信息的介绍。

96922
领券