小编Jef*_*ick的帖子

不透明响应有哪些限制?

不透明响应被定义为Fetch API的一部分,并表示在未启用CORS时对远程源发出的请求的结果.

关于如何使用不透明的响应(包括JavaScript和页面上的资源)存在哪些实际限制和"陷阱"?

javascript cors service-worker fetch-api

60
推荐指数
1
解决办法
2万
查看次数

如何删除有缺陷的服务工作者,或实施"kill switch"?

我正在玩我的计算机中的服务工作者API,所以我可以掌握如何在我的真实应用程序中从中受益.

我遇到了一个奇怪的情况,我注册了一个拦截fetch事件的服务工作者,因此它可以在向源发送请求之前检查其缓存中是否有所请求的内容.问题是这段代码有一个错误,导致函数无法发出请求,因此我的页面留空; 什么都没发生.由于服务工作者已经注册,第二次加载页面时它会拦截第一个请求(加载HTML的请求).因为我有这个错误,那个fetch事件失败了,它从不会请求HTML,所有我都看到它是一个空白页面.

在这种情况下,我知道删除坏服务工作者脚本的唯一方法是通过chrome://serviceworker-internals/控制台.如果此错误进入实时网站,这是解决它的最佳方法吗?

谢谢!

javascript service-worker

46
推荐指数
3
解决办法
2万
查看次数

Chrome网络DevTools中的"状态代码:200 OK(来自ServiceWorker)"?

我熟悉http状态代码,但最近我在chrome调试器中看到了一个奇怪的行.而不是普通的,Status Code:200 OK我看到了以下内容:Status Code:200 OK (from ServiceWorker).

在此输入图像描述

我的猜测是,这只是告诉我ServiceWorker以某种方式负责访问这个文档,但这只是随机猜测.任何人都可以权威地(没有猜测,链接到受尊重的资源)告诉我这是什么意思和含义是什么?

javascript html5 google-chrome http-headers service-worker

32
推荐指数
2
解决办法
1万
查看次数

什么时候在事件处理程序之外的服务工作者中的代码运行?

(我正在解释Rich Harris在" 我希望我早点知道服务工作者的事情 "这个问题上提出的问题.)

如果我的服务工作者中的代码在事件处理程序之外运行,它何时运行?

而且,与此密切相关的是,放入install处理程序并将其完全放在事件处理程序之间有什么区别?

service-worker

26
推荐指数
1
解决办法
2949
查看次数

处理聚合物元素遗传的最佳方法

给出如下元素:

<polymer-element name="custom-element">
    <template>
        <style>
            #container {
                color: red;
            }
        </style>
        <div id="container" on-click="{{clickContainer}}">
            ... lots of other stuff here ...
        </div>
    </template>
    <script>
        Polymer('custom-element', {
            clickContainer: function() {

            }
        });
    </script>
</polymer-element>
Run Code Online (Sandbox Code Playgroud)

我想要另一个包装第一个的元素:

<polymer-element name="my-custom-element" extends="custom-element">
    <!-- extra styling -->
    <script>
        Polymer('my-custom-element', {
            clickContainer: function() {
                this.super();
            }
        });
    </script>
</polymer-element>
Run Code Online (Sandbox Code Playgroud)

我的问题:

  • 指定其他样式的最佳方法是什么?
  • 我可以将基本元素包装在额外的标记中(比如另一个容器)吗?
  • 我可以从基本元素中选择元素吗?像<content select=".stuff">基地的阴影标记一样.

html javascript css web-component polymer

21
推荐指数
1
解决办法
1832
查看次数

检测服务工作者中脱机状态的最佳实践

我有一个服务工作者,offline.html如果客户端没有网络连接,它应该缓存显示的页面.但是,它有时会认为导航器即使不是离线也是脱机的.就是这样navigator.onLine === false.这意味着offline.html即使在线,用户也可以获得而不是实际内容,这显然是我想避免的.

这是我在我的注册服务工作者的方式main.js:

// Install service worker for offline use and caching
if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/service-worker.js', {scope: '/'});
}
Run Code Online (Sandbox Code Playgroud)

我目前service-worker.js:

const OFFLINE_URL = '/mysite/offline';
const CACHE_NAME = 'mysite-static-v1';

self.addEventListener('install', (event) => {
  event.waitUntil(
    // Cache the offline page when installing the service worker
    fetch(OFFLINE_URL, { credentials: 'include' }).then(response =>
      caches.open(CACHE_NAME).then(cache => cache.put(OFFLINE_URL, response)),
    ),
  );
});

self.addEventListener('fetch', (event) => {
  const requestURL = new URL(event.request.url);

  if (requestURL.origin …
Run Code Online (Sandbox Code Playgroud)

javascript offline service-worker progressive-web-apps

18
推荐指数
1
解决办法
1万
查看次数

navigator.serviceWorker.controller始终为null

我有一个问题,在注册serviceWorker后,navigator.serviceWorker.controller始终为null.我从不做强制刷新,只刷新页面.我用谷歌浏览器42.0.2311.152米(32位)测试它.

var currentServiceWorker = null;
navigator.serviceWorker.register(SERVICE_WORKER_URL).then(function(serviceWorkerRegistration { 
  if (navigator.serviceWorker.controller) {
    currentServiceWorker = navigator.serviceWorker.controller;
  } else {
    currentServiceWorker = serviceWorkerRegistration.active;
  }
});
Run Code Online (Sandbox Code Playgroud)

根据这个:

ServiceWorkerContainer接口的控制器只读属性在其状态被激活时返回ServiceWorker对象(ServiceWorkerRegistration.active返回的同一对象).如果请求是强制刷新(Shift +刷新)或者没有活动工作程序,则此属性返回null.(来源:https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/controller)

navigator.serviceWorker.controller应该返回相同的对象serviceWorkerRegistration.active.但是,.active我得到了积极的工作者,.controller没有.

你对这种情况有什么想法吗?

谢谢你,安迪

google-chrome service-worker

12
推荐指数
2
解决办法
4380
查看次数

Bower是否公开每个包的下载统计数据?

鉴于Bower包,我想知道人们使用Bower安装它的频率.那可能吗?

PS我发现的所有内容都是最流行的套餐和评级列表 .

PSS我知道的是,例如,NPM,提供一种下载的统计资料(见它大口,CONCAT-CSS).

bower

9
推荐指数
1
解决办法
1804
查看次数

获取当前用户的YouTube内容所有者ID

下午好

我创建了一个从YouTube Analytics API中提取数据的应用.我的任务是获取contentOwner货币报告,为此我需要一个OWNER_NAME,这对我来说是一个问题.我测试的YouTube帐户上有货币报告,但未连接到youTube CMS.

  1. 与cms.youtube.com的连接是否需要提取youtube分析中显示的contentOwner报告?
  2. 用户是否必须自己提供OWNER_NAME(或ContentOwner_ID?),还是可以以某种方式提取它?

授权授予对yt-analytics-monetary.readonly,yt-analytics.readonly,youtubepartner和其他几个人的访问权限.

youtube youtube-api content-management-system youtube-analytics

8
推荐指数
1
解决办法
5019
查看次数

PWA 添加到主屏幕后会丢失其参数和查询参数

我使用 Angular6 创建了一个 PWA(渐进式 Web 应用程序)。它在浏览器中按照预期完美运行。我的场景是根据从 URL 获取的参数处理所有应用程序数据

例如:https://<my-site.com>/app/abc123

abc123我需要添加到主屏幕应用程序的参数在哪里。

所以问题是,当用户将应用程序添加到主屏幕时,它会丢失所有参数(我也尝试使用查询参数),而我只留下主机名。我需要将整个 URL 添加为应用程序 URL。你能帮忙吗?

感谢您的时间和帮助!

angularjs progressive-web-apps angular-service-worker

8
推荐指数
1
解决办法
4586
查看次数