网页强制刷新后读取ServiceWorkerContainer.controller得到null,并不能据此认定服务工作线程已经被删除。controller表示当前文档的控制器,如果当前页面没有活动或正在激活的Service Worker,就可能返回null;此外,强制刷新也是该属性返回null的已知情况。因此,需要区分当前文档是否受控制与服务工作线程注册是否仍然存在,不能把一次属性读取结果当成注册删除的证据。

一、理解controller的适用范围
ServiceWorkerContainer.controller表示与当前页面关联的活动服务工作线程控制器。它描述的是当前文档的控制关系,而不是整个网站所有Service Worker的注册状态。即使某个页面读取到null,也不能直接推断其他页面、其他导航过程或同一作用范围下的注册关系已经消失。
强制刷新需要特别区分。相关接口明确指出,请求属于强制刷新时,controller也返回null。这意味着页面当前没有通过该属性取得控制器,并不必然意味着此前的注册记录被清除。还要注意,相关功能需要在安全上下文中使用,并结合浏览器版本的支持情况判断。
二、通过页面和注册记录观察
核对时应先确认当前页面的导航类别,区分普通导航与强制刷新,再记录controller的实际读取结果。随后结合已有配置和去敏记录,核对当前页面是否存在控制关系,以及同一scope下是否有相应注册记录。
如果属于强制刷新,controller返回null符合已知行为,不能据此认定注册被删除。如果不是强制刷新,但当前页面没有活动或正在激活的控制器,也可能返回null。如果已有注册记录仍然存在,就应将当前页面控制状态与注册状态分别记录。如果既没有控制器,也没有可核对的注册记录,现有信息仍不足以单独确认具体变化原因,需要结合已有时序和配置继续判断。
三、风险与下一步
风险在于把页面控制器为空直接解释为Service Worker注册丢失,进而清除站点数据、重新注册或重发请求,造成原有状态变化。强制刷新后的观察结果尤其不能替代对注册记录的核对。
下一步应整理安全上下文、浏览器版本、导航类别、controller读取结果及同scope注册记录,区分页面控制状态和注册状态。只核对现有配置、时序和去敏记录,不刷新客户业务页面、不清除站点数据、不重发网络请求,也不进行跨窗口消息测试。
本题适用于大连中山区台式电脑浏览器软件侧咨询。电脑快修网是信息展示与第三方维修对接平台,400-877-9605仅用于咨询。具体支持范围、检查内容和后续安排须在当次咨询中确认。