Code Monkey home page Code Monkey logo

serviceworker's Introduction

What's Going On Here?

Service Workers are a new browser feature that provide event-driven scripts that run independently of web pages. Unlike other workers Service Workers can be shut down at the end of events, note the lack of retained references from documents, and they have access to domain-wide events such as network fetches.

ServiceWorkers also have scriptable caches. Along with the ability to respond to network requests from certain web pages via script, this provides a way for applications to "go offline".

Service Workers are meant to replace the (oft maligned) HTML5 Application Cache. Unlike AppCache, Service Workers are comprised of scriptable primitives that make it possible for application developers to build URL-friendly, always-available applications in a sane and layered way.

To understand the design and how you might build apps with ServiceWorkers, see the explainer document.

Spec and API Development

For the nitty-gritty of the API, the draft W3C specification and service_worker.ts are authoritative.

Spec development happens via issues in this repository. For general discussion, please use the [email protected] mailing list.

Updates to the spec must reference resolved issued marked needs spec.

To edit the spec locally, you'll need a copy of the Web Components-based framework which it is built with. To fetch it, clone the repo and run:

git submodule update --init --recursive

To make edits to the design, please send pull requests against the TypeScript file (service_worker.ts) and spec (spec/service_worker/index.html). Changes to the spec without corresponding changes to the .ts file will not be accepted.

Building the JS version of the TypeScript API description isn't essential, but here's how:

# From the root of the project directory
npm install
# From the root of the project directory
make

Examples

The w3c web mobile group have defined a series of use-cases where ServiceWorker is particularly useful. You can help by adding more use cases, draft implementation code, or even working examples once browsers support the required APIs.

About labels and milestones on issues

This is to explain how we use labels and milestones to triage the issues. Note: This is a draft, suggestions for improvements are welcomed.

Prioritization

enhancement: is for anything that was assessed as not having any impact on the decisions for the current milestone and can therefore be safely discussed, rejected or prioritized later.

milestone: is used to mark issues we agreed to get done in principle by a given revision. For the sake of efficiency, we tend to only focus on the current milestone and leave everything else without specific milestones.

impacts MVP: is used to mark issues impacting the "Minimal Viable Product". The MVP is the minimal scope of API that can solve actual use cases. These issues have the highest priority.

Risk labels for impacts MVP issues
medium risk: to further refine the "impacts MVP" issues. It indicates that the issue is moderately complex and that reaching a conclusion might take some time. These are of higher priority than issues with no risk label but are of lower priority than issues with a "high risk" label.

high risk: to further refine the "impacts MVP" issues. It indicates that the issue is significantly complex and that reaching a conclusion might take a lot of time and effort. These are of higher priority than issues with no risk label or a "medium risk" label.

Actions

needs spec: a decision has been made and the spec needs to be updated.

spec detail: has no significant implications for implementers nor web developers.

decided: to record that a decision has been made.

invalid: when something doesn't not constitute a valid issue.

wontfix: a decision has been made not to pursue this issue further.

duplicate: when a similar issue has already been filed.

bug: an oversight that needs to be fixed.

Areas

fetch: relates to Fetch

lifecycle: relates to lifecycle aspects of Service Worker

cache: relevant to the Cache APIs

question: not an actual issue. Items that have been filed in order to gain a better understanding of Service Worker.

serviceworker's People

Contributors

adam-singer avatar alecf avatar annevk avatar anssiko avatar asankah avatar brettcannon avatar cvan avatar dontcallmedom avatar fremycompany avatar hemanth avatar izuzak avatar jakearchibald avatar jeffposnick avatar jungkees avatar jyasskin avatar kenjibaheux avatar kinu avatar marcoscaceres avatar matthew-andrews avatar mfalken avatar michaelsanford avatar nikhilm avatar richtr avatar shwetank avatar slightlyoff avatar sole avatar terriko avatar tobie avatar tyoshino avatar wanderview avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.