preload 相关问题

术语preload涉及通过在处理或向用户显示数据/内容之前将数据/内容加载到内存/缓存中来提高性能的技术:在浏览器中预加载图像以避免图像呈现延迟,将数据从数据库预加载到RAM以避免DB查询等等上。

我的链接预加载器出现无效 href 值的错误

我的 HTML 文件中有此图像,但出现以下错误 有无效的 href 值 我的 HTML 文件中有此图像,但出现以下错误 <link rel=preload> has an invalid href value <link rel="preload" fetchpriority="high" href={{mainImageUrl1024()}} as="image" media="(min-width:1024px)" /> <link rel="preload" fetchpriority="high" href={{mainImageUrl768()}} as="image" media="(min-width:768px)" /> <link rel="preload" fetchpriority="high" href={{mainImageUrl()}} as="image" /> 以及如何加载此 href 值: mainImageUrl(): string { return this.baseUrl + '?w=450&h=200&fit=crop&auto=format'; } 您在 href 属性中使用 Angular 的插值语法 {{ ... }},Angular 会在页面加载时尝试解析该语法,从而导致问题。 要解决此问题,您可以使用 Angular 的属性绑定语法 href 而不是插值来动态设置 [attr.href] 属性。 以下是修改代码的方法: <link rel="preload" fetchpriority="high" [attr.href]="mainImageUrl1024()" as="image" media="(min-width:1024px)" /> <link rel="preload" fetchpriority="high" [attr.href]="mainImageUrl768()" as="image" media="(min-width:768px)" /> <link rel="preload" fetchpriority="high" [attr.href]="mainImageUrl()" as="image" /> 希望这能解决一切!

回答 1 投票 0

使用 React Native 视频预加载视频的第一帧,这样用户在播放时无需等待

在我的应用程序中,我有 Instagram 等视频列表,我想要的是预加载视频的第一帧,这样当用户打开应用程序时,他们不必等到它加载。 我正在使用反应本机视频。我可以...

回答 2 投票 0

如何根据屏幕尺寸预加载图像

我想根据屏幕尺寸预加载图像,所以我使用: 我想根据屏幕尺寸预加载图像,所以我使用: <link rel="preload" as="image" href="/imagemax.png" media="(min-size:800px)" > <link rel="preload" as="image" href="/imagemed.png" media="()" > <link rel="preload" as="image" href="/imagemin.png" media="(max-size:599px)"> 我不确定如何预加载中型图像。我见过的所有示例仅涉及最小和最大屏幕尺寸,而不是中间值。当屏幕>599px和<800px时如何触发预加载? 你可以试试这个代码。 <link rel="preload" as="image" href="/imagemed.png" media="(min-size:800px) and (max-size: 599px)"> 使用“和”它将定位屏幕最大和最小宽度之间的宽度。

回答 1 投票 0

预加载<picture>元素加载两个图像

我有一个具有多个源的 元素,适用于多种设备宽度,并尝试组装正确的 元素来预加载适合

回答 1 投票 0

如何使用Vue.js预加载图像?

我有一个使用 Vue.Js (带有 webpack)的小应用程序。我有一个过渡部分。当用户单击按钮时,内容会发生变化。它是一个带有 IMG 子元素的简单 DIV 元素。我的公关...

回答 4 投票 0

如何使用 preload.js 将 ipcRenderer.invoke 处理程序答案传递给电子渲染器进程

我正在编写一个 CRA + Electron 应用程序,我需要使用 ipcRenderer.invoke 进行进程间通信。我能够使 ipcRenderer.send 和 ipcRender.on 在 contextIsolation 模式下工作,但没有...

回答 1 投票 0

Reactjs - 视频组件 |如何在显示占位符的同时加载视频?

我制作了一个视频组件,它使用 React.Suspense 组件在加载视频时显示占位符。问题是我的印象是它根本不起作用。当我把

回答 2 投票 0

Ubuntu 站点无法正确加载。我有一个 URL 预加载和语法错误,但我不知道如何解决这个问题

我不是开发人员,我正在尝试作为一个完全的新手开始解决方案架构师课程。我需要下载 ubuntu 桌面版,但该网站无法正确加载。我不知道如何解决这个问题...

回答 1 投票 0

预加载脚本未在[电子邮件受保护]浏览器视图中加载

我尝试在浏览器视图中加载预加载脚本。根据文档 browserview 接受与 browserwindow 接受的相同参数。但是预加载脚本没有加载...

回答 2 投票 0

link rel=preload 可以与 fetch 一起使用吗?

我有一个大的 JSON blob,我想在我的网页中预加载。为此,我已将 添加到我的页面。我还有一个 JS 请求要 fe...

回答 4 投票 0

在平板电脑上预加载 Android 应用程序

这是我的场景: 我开发了一个我的客户想要的 Android 应用程序。 该应用程序位于 Google Play 商店中。 我的客户不太懂技术,而且遍布美国各地。 我已经

回答 1 投票 0

如何使用rel=preload预加载材质图标?

我正在尝试使用谷歌灯塔优化我的网页。 该报告指出,在导入 Material Design 图标的链接上使用 rel=preloads。 我尝试使用语法预加载它们。 我正在尝试使用谷歌灯塔优化我的网页。 报告称在导入 Material Design 图标的链接上使用 rel=preloads。 我尝试使用语法预加载它们。 <link rel="preload" href="" as="style" crossorigin> 我也尝试过使用字体进行预加载。类型为 woff、woff2 和 ttf。它们似乎都不起作用。我还添加了 crossorigin 和 crossorigin="anonymous" 但仍然没有进展。 这些是我的实际链接。我想导入它们。 <link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/material-design-iconic-font/2.2.0/css/material-design-iconic-font.min.css" as="style"> <link rel="preload" href="https://fonts.googleapis.com/icon?family=Material+Icons" as="font" type="font/woff" crossorigin> 如何使用这些带有预加载的链接? 我希望 Google 在其字体指南中准备好预加载信息,但只有普通的 CSS 示例 [1]。 无论如何,我通过添加以下内容来破解解决方案: <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Icons&amp;display=swap" media="print" onload="this.media='all'" crossorigin> (对于不支持的预加载,这似乎是一个很好的后备机制,所以无论如何拥有它都是很好的)。 此外,为了摆脱图标名称的“闪烁”,我使用代码点 [3]。像这样: <i class="material-icons">&#xE87C;</i>(而不是<i class="material-icons">face</i>)。 这样,在字体加载期间,我会得到几乎看不见的符号,如 □,而不是完整的“脸”。 [1] - https://google.github.io/material-design-icons/ [2] - https://csswizardry.com/2020/05/the-fastest-google-fonts/ [3] - https://github.com/google/material-design-icons/blob/master/iconfont/codepoints 这对我有用: <link rel="preload" as="style" onload="this.rel = 'stylesheet'" href="https://fonts.googleapis.com/icon?family=Material+Icons"> 我注意到 Google Fonts 在获取 url 时会在链接末尾放置一个 &display=swap。因此,当我们将其更改为 display=block 时,它会在服务器端的 css 文件中进行更改: font-display: block; 所以像这样使用它: <link href="https://fonts.googleapis.com/icon?family=Material+Icons&display=block" rel="stylesheet"> 可以通过在应用程序的入口页面上放置透明图标来预加载图标。如果入口页面不包含任何其他需要显示的图标,则效果很好。 index.html: <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined" /> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0" /> home.component.ts: <span class="material-symbols-outlined transparent">home</span> <span class="material-icons-outlined transparent">edit</span> home.component.scss: .transparent { color: transparent; } <link rel="preload" href="https://fonts.gstatic.com/s/materialicons/v41/flUhRq6tzZclQEJ-Vdg-IuiaDsNZ.ttf" as="font" type="font/ttf" crossorigin="anonymous"> <style> @font-face { font-family: 'Material Icons'; font-style: normal; font-weight: 400; } .material-icons { font-family: 'Material Icons'; font-weight: normal; font-style: normal; font-size: 24px; line-height: 1; letter-spacing: normal; text-transform: none; display: inline-block; white-space: nowrap; word-wrap: normal; direction: ltr; } </style>

回答 5 投票 0

Rails 3.1:如何预加载图像

使用 Rails 2.x,您可以“预加载”所有图像(无论是 HTML 标签还是 CSS 背景图像),只需将它们包含在主页中的某个位置即可,方法如下: 使用 Rails 2.x,您可以“预加载”所有图像(无论是 HTML 标签还是 CSS 背景图像),只需将它们包含在主页中的某个位置即可,方法如下: <image src="whatever_image.png" width="1" height="1" border="0"> 在 Rails 3.x 中,这仍然适用于预加载 CSS 背景图像,但显然不适用于 HTML 图像标签。 可能是因为源代码显示了更改的图像文件名,大致如下: <img src="/assets/whatever_image-9935e606c9acc98936269b2dc192167f.png" /> 那么你需要如何改变 Rails 3.x 的预加载策略呢? 要消除 IMG 标签中的指纹,您可以使用 Rails image_tag 并指定图像路径包括“资产”部分,如下所示: <%= image_tag "/assets/whatever_image.png", :border => '0', :alt => nil %> 现在的最佳实践是使用 <link> 标签来定义要预加载的图像。您可以使用 Rails URL 帮助器来确保您在生成的 CSS 中指定完全相同的 URL。 例如,将其添加到 <head> 部分: <link rel="preload" href="<%= image_url("layout/bg-texture-pattern.webp") %>" as="image" type="image/webp"> 确保测试并检查浏览器网络请求,以确保它仅被请求一次,并且在其他图像之前被请求。我能够看到检查之前/之后的差异。 其他属性有助于确保浏览器可以尽可能地优化它。请参阅:https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel/preload

回答 2 投票 0

在 NextJS 中预加载图像

我们正在使用带有静态站点生成器的 NextJS 9.3.2 框架,即 SSG,并引入了 Google Lighthouse 6 Largest Contentful Paint (LCP),这正在影响我的站点性能得分。大多数...

回答 3 投票 0

Asp.net 应用程序初始化未命中初始化页面

我正在尝试在 ASP.Net Web 窗体应用程序中运行 applicationInitialization。 我已经完成了许多 SO 线程但没有成功。 应用程序初始化模块似乎工作......

回答 1 投票 0

加载前检查图片是否存在

我使用了其他各种 Stack Overflow 问题中的示例,但由于某种原因,这对我不起作用。我创建了一个函数来获取缩略图并返回实际图像路径或

回答 4 投票 0

Firefox 和 Safari Mac 不支持预加载 CSS 文件

我向所有 css 链接添加了属性 rel="preload",如下所示: 我向所有 css 链接添加了属性 rel="preload",如下所示: <link rel='preload' onload='this.rel="stylesheet"' as='style' id='reworldmedia-style-css' href='style.css' type='text/css' media='all' /> 它在 Chrome 中运行良好,但在 Safari 或 Firefox 中运行不佳 我发现一个可能最好的解决方案是加载两个文件,如下所示 - 支持预加载的浏览器将按预期使用它,而那些不支持预加载的浏览器(如 Firefox)将仅使用常规(第二个链接)。此解决方案不需要使用 onload="this.rel='stylesheet'",因为该样式是在预加载后立即使用的: <head> <link rel="preload" href="style.css" as="style"> <link rel="stylesheet" href="style.css"> </head> 我还发现了一个替代上述方法的方法,可以包含“rel”两次,例如: <link href="style.css" rel="stylesheet" rel="preload" as="style"> 对于 Firefox,仅在 Firefox 56 Nightly 中受支持。将于2017 年 9 月 26 日发货。您可以从这里下载。 更新:此功能在 FF 56 上登陆,但在 57 中被删除。这里是原因: 此功能在 Firefox 56 中可用,但仅适用于可缓存资源。由于各种网络兼容性问题(例如错误 1405761),它已在 Firefox 57 中被禁用。适用于不可缓存资源的改进版本预计将登陆 Firefox 59 更新 2:Firefox 现已支持此功能。 参见我可以使用吗。 Firefox 不支持,将在 Safari 的下一版本中添加。 所以你所看到的是预期的行为。 我想不出比文档本身更具解释性的东西了。在 caniuse.com 网站上有这个 http://caniuse.com/#feat=link-rel-preload 如果你遵循这个并转到 w3c 规范,你会发现这个。 https://w3c.github.io/preload/ 其中明确指出“这是一项正在进行的工作,可能会更改,恕不另行通知。”也许很快这个《草案》完善后,就会增加支持。 使用 loadCSS 跨浏览器可靠地预加载 预加载的一个问题是 Firefox 和 Internet Explorer 等浏览器不支持它(截至 2018 年 11 月)。因此,这些浏览器不会下载 CSS 文件,这可能会导致网页出现严重的显示问题。这使得包含用于预加载的 JavaScript polyfill 变得至关重要 - loadCSS。 下载 loadCSS JavaScript 文件或直接复制其 JS 代码 在这里。 在 CSS 样式表预加载所在的位置加载 loadCSS polyfill 执行: <style> [Your critical CSS goes here] </style> <!– Reliably defer loading of non-critical CSS with loadCSS–> <link rel=“preload” href=”[yourcssfile]” as=“style” onload=“this.onload=null; this.rel=‘stylesheet’”> <noscript><link rel=“stylesheet” href=”[yourcssfile]” ></noscript> <!– Inline the loadCSS preload polyfill code or load it via external JS file–> <script src=“./cssrelpreload.js”></script> 截至 2021 年 11 月。我使用过以下内容,它适用于 Firefox/Safari/Chrome 和其他主要浏览器: <link rel="stylesheet preload" as="style" href="style.css" > 您不需要将“rel”加倍或对同一个 CSS 文件使用两个。 这可以起到指示浏览器尽快下载关键资源的作用 <link rel="preload stylesheet" href="./style.css" as="style">。 我有解决方案,这是有效的,并且对于网站速度来说是最好的 这是作为默认值的每个浏览器的普通代码 <link rel="stylesheet" rel="preload" href="css/xyz.css" as="style" onload="this.onload=null;this.rel='stylesheet'" /> <noscript><link rel="stylesheet" href="css/main.css" /></noscript> 对于 mozilla firefox 使用这个,当文件在 mozilla 中运行时,它显示此代码,否则它显示默认 css 代码 <?php if(isset($_SERVER['HTTP_USER_AGENT'])){$agent = $_SERVER['HTTP_USER_AGENT'];} if(strlen(strstr($agent,"Firefox")) > 0 ){$browser = 'firefox';} if($browser=='firefox'){echo '<link rel="stylesheet" href="css/xyz.css" />';}?> 2021 年最佳解决方案: <link rel="stylesheet" href="/path/to/my.css" media="print" onload="this.media='all'"> 为什么这是最好的选择? 目前(2021 年)所有现代浏览器都支持预加载标签,但如果有人使用未更新的浏览器、IE 或三星移动等某些本机移动浏览器的设备访问您的页面,您的页面仍然会看起来很糟糕或根本不会设计样式。另一方面,使用预加载获得的页面加载时间(和页面速度分数)太大,不能仅仅为了支持不到 1% 的设备而放弃它。 使用 2x rel 标签的最高投票答案仍然会对 FCP 渲染时间产生负面影响(您可以使用 chrome devtools 性能选项卡进行测试)。使用媒体属性开关,我们得到了不会阻止页面渲染的解决方案 并且适用于旧版浏览器。 获取优先级 重要的是,“预加载”标签会获取具有最高优先级的非关键 CSS,这可能会降低其他重要下载的优先级,但如果在您的情况下您希望预加载提供优先级,则可以使用此解决方法: <link rel="preload" href="/path/to/my.css" as="style"> <link rel="stylesheet" href="/path/to/my.css" media="print" onload="this.media='all'">

回答 9 投票 0

在Vue3/Vite/Rollup中预加载导入的字体

如何在 Vue3(vite/rollup)应用程序中预加载从 npm 包导入的字体? 例如:我引用了材质字体库: npm install --save 材质符号 并将其导入到 main...

回答 1 投票 0

我们如何在 Angular 中预加载字体?

我们是否应该像下面的代码一样将字体包含在带有rel =“preload”的index.html文件中,或者我们可以在Angular CLI中配置它以预加载所有所需的字体吗? 请给我推荐一个更好的

回答 4 投票 0

Laravel Admin lte 预加载器

我有一个使用 admin lte 主题的 laravel 项目。这个 Amin lte 有一个带有一些动画的预加载器。我目前面临一个问题,这个预加载器只在 html 显示后预加载。通常用

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.