小编Ste*_*Pon的帖子

服务工作者skipWaiting和clients.claim在第一次加载时不控制浏览器

现在我的服务人员看起来像这样:

\n\n
self.addEventListener('install', event => {\n  console.log('V1 installing\xe2\x80\xa6')\n  self.skipWaiting()\n\n  event.waitUntil(\n    caches\n      .open('sw-cache')\n      .then(cache =>\n        cache.addAll([\n          '/assets/img/bbcourt-2pt.png',\n          '/assets/img/bbcourt-3pt.png'\n        ])\n      )\n  )\n})\n\nself.addEventListener('activate', event => {\n  self.clients.claim()\n  console.log('V1 now ready to handle fetches!')\n})\n\nself.addEventListener('fetch', event => {\n  const url = new URL(event.request.url)\n\n  if (\n    url.origin == location.origin &&\n    url.pathname == '/assets/img/bbcourt-2pt.png'\n  ) {\n    event.respondWith(caches.match('/assets/img/bbcourt-2pt.png'))\n  }\n\n  if (\n    url.origin == location.origin &&\n    url.pathname == '/assets/img/bbcourt-3pt.png'\n  ) {\n    event.respondWith(caches.match('/assets/img/bbcourt-3pt.png'))\n  }\n})\n
Run Code Online (Sandbox Code Playgroud)\n\n

目前,我正在尝试使用 self.skipWaiting() 和 self.clients.claim() 立即通过此服务工作线程控制浏览器,这样即使我转到带有 bbcourt-2pt.png 和 bbcourt- 的页面, 3pt.png 在第一次加载时离线时,缓存的图像仍然由服务工作线程提供。然而,服务工作线程似乎仍然没有在第一次加载时接管。我究竟做错了什么?

\n

javascript ionic-framework service-worker

5
推荐指数
0
解决办法
333
查看次数

Ruby on Rails 5 将 has_one child 设置为 nil 在控制台中失败

我目前正在学习 Lynda 上的 Ruby on Rails Essentials 5 培训课程,在一对一关联部分中,我创建了一个“主题”,其中包含一个“页面”。每个模型如下所示:

class Subject < ApplicationRecord

    has_one :page

    scope :visible, lambda {where(:visible => true)}
    scope :invisible, lambda {where(:visible => false)}
    scope :sorted, lambda {order("position ASC")}
    scope :newest_first, lambda {order("created_at DESC")}
    scope :search, lambda {|query| where(["name LIKE ?", "%#{query}%"])}

end
Run Code Online (Sandbox Code Playgroud)

/////

class Page < ApplicationRecord

    belongs_to :subject

end
Run Code Online (Sandbox Code Playgroud)

在数据库中,我有一个现有的主题,我通过 id 找到并保存到一个变量中。然后我创建了一个新的 Page 对象(但不保存它),最后,我通过执行 subject.page = page 来持久化它。问题是,当我尝试使用 subject.page = nil 删除关联时,最终出现以下错误:

irb(main):004:0> subject.page = nil
   (0.3ms)  BEGIN
   (0.2ms)  ROLLBACK
ActiveRecord::RecordNotSaved: Failed to remove the …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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