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

JavaScript 页面资源加载方法onload,onerror总结

跨源策略 这里有一条规则:来自一个网站脚本无法访问其他网站内容。例如,位于 https://facebook.com 脚本无法读取位于 https://gmail.com 用户邮箱。...如果我们使用来自其他域脚本,并且该脚本中存在 error,那么我们无法获取 error 详细信息。 例如,让我们使用一个脚本 error.js,该脚本只包含一个(错误)函数调用: // ?...https://javascript.info/article/onload-onerror/crossorigin/error.js, 1:1 现在,让我们从另一个域中加载相同脚本: <script...正是因为它来自于另一个域。 为什么我们需要 error 详细信息?...这很好,因为我们可以看到由用户触发实际中 error。但是,如果一个脚本来自于另一个源(origin),那么正如我们刚刚看到那样,其中没有太多有关 error 信息。

4K10

1000多个项目中十大JavaScript错误以及如何避免

因此,如果在 DOM 元素之前存在标签,则脚本标签内 JS 代码就会在浏览器分析 HTML 页面时执行。如果在加载脚本之前尚未创建 DOM 元素,就会出现这样错误。...在脚本标签上设置crossorigin =“anonymous” 在你 HTML 源代码中,为每一个脚本设置 Access-Control-Allow-Origin,在设置 SCRIPT 标签中,设置...在将 crossorigin 属性添加到脚本标签之前,请确保正在向脚本文件发送 header。...在 Firefox 中,如果 crossorigin 属性存在但 Access-Control-Allow-Origin 标题不存在,则脚本不会执行。 5....发生以上错误原因是,当你调用 setTimeout(  )  时,实际上是在调用 window.setTimeout(  ),传递给 setTimeout(  ) 匿名函数是在窗口对象上下文中定义

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

1000多个项目中十大JavaScript错误以及如何避免

因此,如果在 DOM 元素之前存在标签,则脚本标签内 JS 代码就会在浏览器分析 HTML 页面时执行。如果在加载脚本之前尚未创建 DOM 元素,就会出现这样错误。...在脚本标签上设置crossorigin =“anonymous” 在你 HTML 源代码中,为每一个脚本设置 Access-Control-Allow-Origin,在设置 SCRIPT 标签中,设置...在将 crossorigin 属性添加到脚本标签之前,请确保正在向脚本文件发送 header。...在 Firefox 中,如果 crossorigin 属性存在但 Access-Control-Allow-Origin 标题不存在,则脚本不会执行。 5....发生以上错误原因是,当你调用 setTimeout( ) 时,实际上是在调用 window.setTimeout( ),传递给 setTimeout( ) 匿名函数是在窗口对象上下文中定义

6.2K30

用 preload 预加载页面资源

preload 是确认会加载指定资源,如在我们场景中,x-report.js 初始化后一定会加载 PcCommon.js 和 TabsPc.js, 则可以预先 preload 这些资源; prefetch...原因是对跨域文件进行 preload 时候,我们必须加上 crossorigin 属性: <link rel="preload" as="font" crossorigin href="https:...script 脚本资源,优先级不一 ? ? 前三个 js 文件是写死在 html 中静态资源依赖,后三个 js 文件是根据首屏按需异步加载组件资源依赖,这正验证了这个规则。...属性(即使同源),则会采用匿名模式 CORS 去加载,优先级是 High,看下图对比:第一条 High 优先级也就是 preload 请求: ?...第二条 Highest 也就是样式引入请求: ? 可以看到,在 preload 请求中,缺少了一个 origin 请求头字段,表示这个请求是匿名请求。

1.9K20

使用 Preload&Prefetch 优化前端页面的资源加载

中增加了一次新ticket_bg.png访问请求,我们很快发现,这个请求status虽然也是200,但有一个特殊标记—prefetch cache,表明这次请求资源来自prefetch缓存。...以下面的代码为例,webpack会生成标签添加到html页面头部。...目前浏览器基本上都具备预测解析能力,可以提前解析入口html中外链资源,因此入口脚本文件、样式文件等不需要特意进行preload。...3、最佳实践 基于上面对使用场景分享,我们可以总结出一个比较通用最佳实践: 大部分场景下无需特意使用preload 类似字体文件这种隐藏在脚本、样式中首屏关键资源,建议使用preload 异步加载模块...原因是如果不指定crossorigin属性(即使同源),浏览器会采用匿名模式CORS去preload,导致两次请求无法共用缓存。

1.2K60

进阶 | 用 preload 预加载页面资源

preload 是确认会加载指定资源,如在我们场景中,x-report.js 初始化后一定会加载 PcCommon.js 和 TabsPc.js, 则可以预先 preload 这些资源; prefetch...我们必须加上 crossorigin 属性: 再看一下网络请求,就变成一条了。...script 脚本资源,优先级不一 前三个 js 文件是写死在 html 中静态资源依赖,后三个 js 文件是根据首屏按需异步加载组件资源依赖,这正验证了这个规则。...font 文件时,若不指定 crossorigin 属性(即使同源),则会采用匿名模式 CORS 去加载,优先级是 High,看下图对比:第一条 High 优先级也就是 preload 请求: 第二条...Highest 也就是样式引入请求: 可以看到,在 preload 请求中,缺少了一个 origin 请求头字段,表示这个请求是匿名请求。

1.2K20

JavaScript高级程序设计(第4版)- HTML中JavaScript

# 元素 # 属性 async:(异步执行脚本)可选。立即下载脚本,但不阻止其他页面动作。只对外部文件有效。 crossorigin: 可选。默认不使用。...crossorigin="anonymous"配置文件请求不必设置凭据标志 crossorigin="use-credentials",设置凭据标志,出站请求会包含凭据 defer: (推迟执行脚本)可选...表脚本语言内容类型(MIME类型) 默认"text/javascript" JS 文件 MIME 类型通常是 "application/x-javascript" 如果值是 module, 则代码会被当成... 包含外部 JS 文件 src 属性中指定 URL 指向 JS 代码文件 下载和执行都会阻塞页面 使用 src 属性标签内代码会被忽略 可以包含来自外部域 JS 文件(JSONP...适用情况: 浏览器不支持脚本 浏览器对脚本支持被关闭

50050

使用 Preload&Prefetch 优化前端页面的资源加载「建议收藏」

中增加了一次新ticket_bg.png访问请求,我们很快发现,这个请求status虽然也是200,但有一个特殊标记—prefetch cache,表明这次请求资源来自prefetch缓存。...以下面的代码为例,webpack会生成标签添加到html页面头部。...目前浏览器基本上都具备预测解析能力,可以提前解析入口html中外链资源,因此入口脚本文件、样式文件等不需要特意进行preload。...3、最佳实践 基于上面对使用场景分享,我们可以总结出一个比较通用最佳实践: 大部分场景下无需特意使用preload 类似字体文件这种隐藏在脚本、样式中首屏关键资源,建议使用preload 异步加载模块...原因是如果不指定crossorigin属性(即使同源),浏览器会采用匿名模式CORS去preload,导致两次请求无法共用缓存。

1.1K31

为什么需要“跨域隔离”才能获得强大功能

这是一种安全功能,它是用来限制文档和脚本如何与其他来源资源进行交互。...该原则限制了网站访问跨域资源方式。例如,来自 https://a.example 文档被禁止访问 https://b.example 上托管数据。 但是,在历史上同源政策有一些例外。...一种方法是通过引入称为跨域资源共享(CORS)新协议,其目的是确保服务器允许共享具有给定来源资源。另一种方法是通过隐式删除对跨域资源直接脚本访问,同时保留向后兼容性。...在跨域隔离状态下,发出请求站点被认为不太危险,并且可以解锁强大功能,例如 SharedArrayBuffer,performance.measureMemory 和 JS Self-Profiling...1 如果这个图片资源带有 CORS 标头,应该用 crossorigin

2.3K10

web前端学习工作笔记(十六)

运行环境,包含node.js服务器端,如果发现没有浏览器api,路由会自动强制进入这个模式。...; pushState设置新URL可以与当前URL一模一样,这样也会把记录添加到栈中;而hash设置新值必须与原来不一样才会触发记录添加到栈中; pushState通过stateObject可以添加任意类型数据到记录中...:未知跨域脚本执行错误时会抛出,一般做法:script配置crossorigin,服务端header配置Access-Control-Allow-Origin: * es6以上版本要不要转码成es6 结论: 除了迭代器等语法会变得复杂以外,大部分情况不转码,可以用更少指令,更利于v8提升性能。...vue.config.js和webpack.config.js都可配置webpack // vue.config.js module.exports = { configureWebpack: {

37530

如何将Thymeleaf技术集成到SpringBoot项目中

通过下拉列表选择不同城市,来获取不同城市天气信息。 下面需要一段JS脚本来驱动这个事情。...var url ='/report/cityId/'+cityId; window.location.href= url; }); }); 脚本非常简单,当下拉列表变动时,就能把相应选中城市ID给获取到...JS脚本既可以放在HTML页面中,也可以放置在独立JS文件中。...为了便于管理,这里把该脚本放置到resources/static/js目录下report.js文件中,同时,在页面里面引用该JS文件。...本篇内容讲解如何将Thymeleaf技术集成到SpringBoot项目中 下篇文章给大家讲解如何进行微服务拆分; 觉得文章不错朋友可以转发此文关注小编; 感谢大家支持!!

1.1K10

你知道自己代码在线上有多少问题吗?

这个其实是在浏览器匿名函数(即 anonymous)中执行代码,类似直接打在 console 中代码,或者通过 eval 等函数运行代码。...use-credentials 额外提一点,jsonp 产生脚本绝大部分是非异步代码。跨域脚本异步代码有一些坑,后面会介绍。 特殊解决方案 使用 crossOrigin 是常规解决方案。...-- 设置了跨域头脚本 --> // badjs.js...但是要想办法在上报时候把它"解构" 常见导致 Script error 场景 跨域脚本,并且未设置 crossorigin 里发生异常 jsonp,未设置 crossorigin,其对于 script...生成 js 脚本里发生异常 iOS 下 跨域脚本 异步代码 内发生异常 iOS 下 native 主动执行 js 代码发生异常 关于异步代码需要注意点 ios 下跨域异步代码无法解析 Script

94530

脚本错误量极致优化-监控上报与 Script error

本文基于在手 Q 家校群前端脚本错误量优化方案,致力于打造极致脚本错误优化。 监控上报 脚本错误主要有两类:语法错误、运行时错误。...优化 Script error Script error 来自同源策略影响,那么解决方案之一是进行资源同源化,另外也可以利用跨源资源共享机制( CORS )。...方案一:同源化 将 js 代码内联到 html 文件中 将 js 文件与 html 文件放到同一域名下 以上两种方式能够简单直接地解决问题,但也可能带来其他影响,如内联资源不好利用文件缓存,同域无法充分利用...为页面上 script 标签添加 crossorigin 属性。... 增加 crossorigin 属性后,浏览器将自动在请求头中添加一个

1.2K00

脚本错误量极致优化:监控上报与 Script error

本文基于在手 Q 家校群前端脚本错误量优化方案,致力于打造极致脚本错误优化。 监控上报 脚本错误主要有两类:语法错误、运行时错误。...[1494556619715_3342_1494556619742.png] 优化 Script error Script error 来自同源策略影响,那么解决方案之一是进行资源同源化,另外也可以利用跨源资源共享机制...方案一:同源化 将 js 代码内联到 html 文件中 将 js 文件与 html 文件放到同一域名下 以上两种方式能够简单直接地解决问题,但也可能带来其他影响,如内联资源不好利用文件缓存,同域无法充分利用...为页面上 script 标签添加 crossorigin 属性。... 增加 crossorigin 属性后,浏览器将自动在请求头中添加一个

2.4K00
领券