-
Notifications
You must be signed in to change notification settings - Fork 315
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can we make to avoid to invoke ServiceWorker _by default_ for if user code call event.addRoutes(rules)
in install
event handler?
#1712
Comments
install
event handler?event.addRoutes(rules)
in install
event handler?
I guess we are in a different mental model. You might want
What do you think? |
My intention of this proposal is that a developer can skip to write such thing. I think we have a optimization chance and I guess this not might cause a destructive behavior change. First, I think that we can regard as that calling Second, an application can call Third, I think this proposal can reduce a application code with the achievement of static routing API’s motivation. Eventually, |
Oops. I forgot to remove this word from my draft.... |
You can find sites using the ServiceWorker static routing API in https://chromestatus.com/metrics/feature/timeline/popularity/4711. I expected rules like followings in the end.
or
They seem to try to avoid using fetch handler for specific resources, though.
Can I ask why avoiding writing code like above is important?
There are sites using the API already. The proposal should bring behavior change on their API usage.
As far as I saw the existing usage, I feel the developers try to use a fetch handler for a specific resource, but they seem to want a fetch handler for others.
I am sorry, I failed to catch the point. The install event must happen before the fetch event, and regardless of Also, the install event happen once after the registration until an update. I think the event rarely happen, and we may not need to focus on its performance.
Again, can I ask why reducing the application code is so important? |
I'd like to clarify my position to avoid misunderstanding, I'm a volunteer contributor but not an paid developer from some browser vendors. I commented here with a hat of web developer.
What I wanted to say is that, if the spec defines the fetch event occurs only after the install event, we may have a chance to switch the running mode for UA's optimization as the motivation in the case that an developer calls
Simply, I feel the current proposal is a bit complex as a developer exposed API and I filed this issue. As my understanding through I read https://github.com/WICG/service-worker-static-routing-api and your comment, the original motivation of it is that introduce the capability to skip some the registered fetch handler, isn't it? I think there're mixed API semantics both opt-in behavior and opt-out behavior that may confuse a developer as illustrate sample codes in #1712 (comment). If the goal of https://github.com/WICG/service-worker-static-routing-api is to reduce the intercepting by service worker, can we move mental model to the opt-in invokation for the fetch handler on calling |
Motivation
event.addRoutes(rules)
was introduced by #1701 whose motivation is explained in https://github.com/WICG/service-worker-static-routing-api to reduce the overhead to intercept by ServiceWorker.According to the motivation, I seem our ideal status resolved by this API is ServiceWorker works as opt-in mode if a user code calls
event.addRoutes()
.I think almost combinations of
RouterRule
would be nice to work like opt-in semantics. However, there are some cases that are not intuitive combinations.For example, the explainer illustrates Bypassing ServiceWorker for particular resources case. This case say that ServiceWorker to behave as just as opt-out for some network request path
On the other hands, if
RouterRule.source
is"fetch-event”
or cache, ServiceWorker would work like as opt-in for registered conditions by the spec.If I don't misunderstand the spec, I think this API semantics inconsistency may confuse a developer.
Idea
I also propose a rough idea to resolve this behavior inconsistencies.
event.addRoutes()
once in theinstall
event handler.event.addRoutes()
is a newly introduced API. That method does not exist on old UAs. If user code does not callevent.addRoutes()
, ServiceWorker can work as a traditional style that intercept for all network requests implicitly.event.addRoutes()
(Google Chrome), they can just ignores some patterns of conditions to keep a backword compatibility.The text was updated successfully, but these errors were encountered: