Apollo-link: [рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-рдСрдлрд╝рд▓рд╛рдЗрди] рдЖрдкрдХрд╛ рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рдЕрдХреНрддреВре░ 2017  ┬╖  38рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: apollographql/apollo-link

рдирдорд╕реНрддреЗ, рдореБрдЭреЗ рдЗрд╕ рдлреАрдЪрд░ рдмрд┐рд▓реНрдб рдореЗрдВ рднрд╛рдЧ рд▓реЗрдХрд░ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реЛрдЧреАред рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдВрдХреЗрдд рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣реЗ рджреЛрд╕реНрддреЛрдВ, рдореИрдВрдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдПрдХ рд╕рд╛рде рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдкреЛрд▓реЛ-рдСрдлрд╝рд▓рд╛рдЗрди рдХреЗ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред
(рдкрд┐рдВрдЧрд┐рдВрдЧ https://github.com/Malpaux/apolo-offline/issues/14)

рдЖрдк рдЗрд╕реЗ рдЗрд╕ рд╕рд╛рд░ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: https://gist.github.com/lachenmayer/2e364a5ca9ae0918eb032867d0c6720d

рдЗрд╕рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реИ:

рдЬрдм рдбрд┐рд╡рд╛рдЗрд╕ рдСрдлрд╝рд▓рд╛рдЗрди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдиреБрд░реЛрдз рдХрддрд╛рд░рдмрджреНрдз рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рдЬрдм рдпрд╣ рд╡рд╛рдкрд╕ рдСрдирд▓рд╛рдЗрди рд╣реЛ рдЬрд╛рдПрдЧрд╛ рддреЛ рдмрд┐рдирд╛ рдХрддрд╛рд░рдмрджреНрдз рд╣реЛ рдЬрд╛рдПрдЧрд╛ред ( apollo-link-queue )

рдиреЗрдЯрд╡рд░реНрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЕрдиреБрд░реЛрдз рдХрд╛ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрд╕реАрдо рд░реВрдк рд╕реЗ)ред ( apollo-link-retry )
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдпрд╛ рддреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдСрдлрд╝рд▓рд╛рдЗрди рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдмреИрдХрдПрдВрдб рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдпрд╣ рдиреАрдЪреЗ рд╣реИ)ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рд╣рдо рдХреИрд╢ рд╕реЗ рдХреНрд╡реЗрд░реА рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреИрд╢ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕реЗ optimisticFetchLink рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ "рдЖрд╢рд╛рд╡рд╛рджреА рдлрд╝реЗрдЪ" рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкреЛрд▓реЛ-рдСрдлрд╝рд▓рд╛рдЗрди рдХреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднрд╛рдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рдХрд┐рд╕реА рднреА apollo-link-offline рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдСрдлрд╝рд▓рд╛рдЗрди рд░рд╣рддреЗ рд╣реБрдП рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдРрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ network-and-cache рд▓рд╛рдиреЗ рдХреА рдиреАрддрд┐ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП , рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЬрд▓реНрдж рд╣реА рдХрднреА рднреА рдмрджрд▓реЗрдЧрд╛ (рджреЗрдЦреЗрдВ https://github.com/apollographql/react-apollo/issues/ 604#рдЗрд╢реНрдпреВ рдХрдореЗрдВрдЯ-355648596)ред

рдпрджрд┐ рдЖрдк рд╕рд╛рд░ рдХреЛ offlineLink.js рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

import { InMemoryCache } from 'apollo-cache-inmemory'
import { ApolloClient } from 'apollo-client'
import { createHttpLink } from 'apollo-link-http'

// get this from https://gist.github.com/lachenmayer/2e364a5ca9ae0918eb032867d0c6720d
import { createOfflineLink } from './offlineLink'

const cache = new InMemoryCache()
const networkLink = createHttpLink()

const offlineLink = createOfflineLink({ cache })

const link = ApolloLink.from([
  // ... + other links ...
  offlineLink,
  networkLink,
])

const client = new ApolloClient({
  cache,
  link,
}

рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛рдПрдБ / рдЕрдиреБрдкрд▓рдмреНрдз рдмрд┐рдЯреНрд╕

  • рдпрд╣ рдЕрднреА рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП isOnline рдЪреЗрдХ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреИрд╢ рдореЗрдВ рдХреЗрд╡рд▓ рдЖрдВрд╢рд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдПрдХ рдЕрд╕реНрд╡реАрдХреГрдд рд╡рд╛рджрд╛ рдорд┐рд▓реЗрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрдзреВрд░реА рд╣реИред рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкреЛрд▓реЛ-рдСрдлрд╝рд▓рд╛рдЗрди рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рд╕рдВрдХреЗрдд рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред
  • рдЖрдк рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЛрдИ рднреА рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рд╕реЗрдЯрд┐рдВрдЧ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ - рдЗрд╕реЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рдЖрд╢рд╛рд╡рд╛рджреА рд▓рд╛рдиреЗ рдкрд░ рдЖрдкрдХрд╛ рдХреЛрдИ рдирд┐рдпрдВрддреНрд░рдг рдирд╣реАрдВ рд╣реИред рдЖрдк рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЕрдкреЛрд▓реЛ-рдСрдлрд╝рд▓рд╛рдЗрди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВ ( {__online_: true} рдХреНрд╡реЗрд░реА рд╡реИрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХрд░рдирд╛), рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рднреА рдирд╣реАрдВ рд╣реИрдВред

рдореИрдВ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕реЗ рдЖрдЬрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрд░ рд╕рдорд╛рдзрд╛рди рдвреВрдВрдв рд░рд╣рд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╣рдо рдЗрд╕реЗ рдЯрд╛рдЗрдкрд┐рдВрдЧ, рдкрд░реАрдХреНрд╖рдг, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдЪрд┐рдд рдПрдирдкреАрдПрдо рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдЕрдкреЛрд▓реЛ-рдХреНрд▓рд╛рдЗрдВрдЯ 2 рдХреЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдЗрд╕рдХрд╛ рдХреЛрдИ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред

рдПрдХ рдЕрдЪреНрдЫрд╛ тЬМя╕П

рд╕рднреА 38 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдк рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ?

рдСрдлрд╝рд▓рд╛рдЗрди рдРрдк рдХреЗ рд░реВрдк рдореЗрдВ:

  • рд╕рднреА рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдЕрдиреБрд░реЛрдз рдХрддрд╛рд░ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред (рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред
  • рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдСрдирд▓рд╛рдЗрди рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкрд┐рдЫрд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

import { NetInfo } from 'react-native';
import OfflineLink from 'apollo-link-offline';

const offlineLink = new OfflineLink({
  isOnlineAsync: () => NetInfo.isConnected.fetch(),
});

NetInfo.isConnected.addEventListener('change', (isConnected) => {
  if (isConnected) {
    offlineLink.resubmit();
  }
});

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдПрдХ рдЕрджреНрднреБрдд рдЯреБрдХрдбрд╝рд╛ рд╣реЛрдЧрд╛ред рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рдЗрд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-рдСрдлрд╝рд▓рд╛рдЗрди рдХреНрд╡реЗрд░реА рдФрд░ рдореНрдпреВрдЯреЗрд╢рди рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗ рдЬрд┐рд╕реЗ рдСрдлрд╝рд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдПрдХ рдмрд╛рд░ рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ, рд╣рдо рдХреНрд╡реЗрд░реА рд╕реЗ рд╕рднреА рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдиреАрдп рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рднрдВрдбрд╛рд░рдг рдореЗрдВ рдмрдирд╛рдП рдЧрдП рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рддрд╛рдХрд┐ рд╣рдо рдСрдлрд╝рд▓рд╛рдЗрди рдмрдирд╛рдП рдЧрдП рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХреЗрдВред

рдЗрд╕ рддрд░рд╣ рд╣рдо рд╕реНрдерд╛рдиреАрдп рдХреИрд╢ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реБрдП рдСрдлрд╝рд▓рд╛рдЗрди рд░рд╣рддреЗ рд╣реБрдП рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдЧрд░ рд╣рдо рд╕рд░реНрд╡рд┐рд╕ рд╡рд░реНрдХрд░реНрд╕ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░ рдкрд╛рддреЗ рд╣реИрдВ рддреЛ рд╣рдо Googles PWA рдЯреЗрд╕реНрдЯ рднреА рдкрд╛рд╕ рдХрд░ рд▓реЗрдВрдЧреЗ
рдлрд┐рд░ рдЬрдм рдРрдк рдСрдирд▓рд╛рдЗрди рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИ, рддреЛ рд╕реНрдерд╛рдиреАрдп рдХреИрд╢ рдкрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рд╡рд╛рдкрд╕ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рд░реВрдк рдореЗрдВ Concurrency рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдореЗрд░реА рдЪрд┐рдВрддрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдП (рдСрдлрд╝рд▓рд╛рдЗрди) рдЕрджреНрдпрддрди рддрд╛рд▓рд┐рдХрд╛ рдПрдХреНрд╕ рд╣реИ рдЬрдмрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмреА (рдСрдирд▓рд╛рдЗрди) рдиреЗ рддрд╛рд▓рд┐рдХрд╛ рдПрдХреНрд╕ рдЕрдкрдбреЗрдЯ рдХреА рд╣реИ рдЬрдмрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдП рдСрдлрд╝рд▓рд╛рдЗрди рдерд╛ред рд╣рдореЗрдВ рдпрд╣рд╛рдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ Concurrency рдирд┐рдпрдореЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рджрд┐рдирд╛рдВрдХ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмреА рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдЧрд░реВрдХ рдХрд┐рдП рдмрд┐рдирд╛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдпрд╛ рд╣рдо рдХреЗрд╡рд▓ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╡рд┐рдлрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдСрдирд▓рд╛рдЗрди рд╡рд╛рдкрд╕ рдЖрдиреЗ рдкрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдкреЛрд▓реЛ рдХреНрд▓рд╛рдЗрдВрдЯ 2 рдЕрджреНрднреБрдд рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдпрд╣ рдЯреБрдХрдбрд╝рд╛ рдкреВрд░реНрдг рдХреБрддреНрддреЗ рдмреЛрд▓реНрдХреНрд╕ рд╣реЛрдЧрд╛

рдореИрдВ рднреА рдЗрд╕рдХрд╛ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рд╣реЛрдКрдВрдЧрд╛ред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ 1.0 рдХреЗ Redux рд╕реНрдЯреЛрд░ рдХреЗ рд╕рд╛рде рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдПрдХ рд╕реБрд╕рдВрдЧрдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдЕрдкреЛрд▓реЛ 2.0 рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХрд╛ рдкреВрд░реНрдг рдирд╛рдЧрд░рд┐рдХ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рд╣реА рдЕрджреНрднреБрдд рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдВ рдЬреЛ рдХреБрдЫ рднреА рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ- рдореВрд▓ рд░реВрдк рд╕реЗ рдореИрдВ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдиреАрдп рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╡рд╣рд╛рдВ рд╕реЗ рдЕрдкреЛрд▓реЛ рдореЗрдВ рддрдереНрдп рдХреЗ рдмрд╛рдж рдпреИрдВрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рджреВрд╕рд░реЗ, рдореНрдпреВрдЯреЗрд╢рди рдХреЛ рдХрддрд╛рд░рдмрджреНрдз рдХрд░рдирд╛ред

рдПрдХ рддреГрддреАрдпрдХ рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ, рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдФрд░ рднреА рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдЪреВрд╕рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рднреА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдФрд░ рдХреБрдЫ рдРрд╕рд╛ рдЬреЛ рдореИрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдЧрднрдЧ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдмрд╕ рд╕рд╛рдорд╛рдиреНрдп рдХреНрд╡реЗрд░реА рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдмрд╣реБрдд рддреЗрдЬрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдлрд┐рд░ рдкреВрд░реНрдг рд╕рдЯреАрдХрддрд╛, рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдЕрдиреБрдорддрд┐ рдХреЗ рд▓рд┐рдП рд░реАрд╣рд╛рдЗрдбреНрд░реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рддреЛ рдЙрд╕ рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рд▓реЛрдб-рдлреЙрд░-рдмрд╛рдж рдХреЗ рдХреЛрдг рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕рдлрд╛рд░реА рдХреЗ рд╕рд╛рде рдЕрдВрддрддрдГ рддрдХрдиреАрдХреА рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдореЗрдВ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдмрдирдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ рднреА рдЗрд╕рдХреЛ рд▓реЗрдХрд░ рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВред @danieljvdm рдЕрдкреЛрд▓реЛ-рдХреНрд▓рд╛рдЗрдВрдЯ рд░реЗрдкреЛ рдореЗрдВ рдХрд┐рд╕реА рдореБрджреНрджреЗ рдкрд░ рджреГрдврд╝рддрд╛ рдкрд░ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕рд┐рд░ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ RetryLink рдиреЗрдЯрд╡рд░реНрдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдкреБрдирд░реНрдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдлрд╝реЙрд▓рдСрдлрд╝ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдЬрд┐рд╕ рдореБрджреНрджреЗ рдХреЛ @2WheelCoder рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд╡рд╣ рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдФрд░ рд╢рд╛рдпрдж рдЕрдиреБрднрд╡рд╣реАрди рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ рдЬреЛ рдкреВрд░реНрдг рдСрдлрд╝рд▓рд╛рдЗрди рд╕рдорд░реНрдерди (рдХреНрдпреВрдЗрдВрдЧ рдХреНрд╡реЗрд░реА/рдореНрдпреВрдЯреЗрд╢рди рдФрд░ рдРрд╕реЗ) рдХреЗ рдмрдЬрд╛рдп рдХреИрд╢ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдХреНрд╖рдо рд╣реИред

рдпрд╣ рдЕрднреА рднреА рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рд╢реАрд░реНрд╖ рдкрд░ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЙрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдореИрдВрдиреЗ рдЬреЛ рдмрддрд╛рдпрд╛ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдЬ рдкрд╣рд▓реЗ @2WheelCoder рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реБрдЭрд╛рд╡ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред "рд╕реНрдЯреЛрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдирд┐рдЧрд░рд╛рдиреА" рдХреЗ рд▓рд┐рдП рдЕрдкреЛрд▓реЛрд▓рд┐рдВрдХ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреИрд╢ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмреАрдЪ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд░рд╣рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдиреБрд░реЛрдз рдХреЛ рдмрд╛рд╣рд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ (рдорд┐рдбрд▓рд╡реЗрдпрд░) рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдХреИрд╢ рдореЗрдВ рд▓рд┐рдЦреЗ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдЖрдлреНрдЯрд░рд╡реЗрдпрд░) рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдХрдм _has_ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ - рдореИрдВ рдХреЗрд╡рд▓ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ (рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рд╣реИрдХ рдПрдХ 1000ms рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реИ )

рдСрдлрд╝рд▓рд╛рдЗрди рджреГрдврд╝рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдШрд╛рддрдХ рджреЛрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдирд╣реАрдВ рд╣реИред рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рд▓рд┐рдВрдХ рдХреЗрд╡рд▓ рддрднреА рд╕рдХреНрд░рд┐рдп рд╣реЛрдЧрд╛ рдЬрдм рд╕рджрд╕реНрдпрддрд╛ рдЦреЛрд▓реА рдЬрд╛рдПрдЧреА, рдмрд╛рдж рдХреА рдШрдЯрдирд╛рдУрдВ рдкрд░ рдирд╣реАрдВ (рд╢рд╛рдпрдж рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдпрд╛рдж рдХрд┐рдпрд╛?)

рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВ рдЕрднреА рд╣реВрдВ, рдФрд░ рдореИрдВ рдмрд╣реБрдд рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдВ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЕрдкреЛрд▓реЛ-рдХреИрд╢-рдЗрдирдореЗрдореЛрд░реА рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдЦреЛрд▓рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред

@danieljvdm рдореИрдВ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдЙрд╕реА рдореБрджреНрджреЗ рдкрд░ рдЪрд▓рдиреЗ рдХреЗ рдмрд╛рдж рд╕реАрдзреЗ рдХреИрд╢ рдкрд░ рджреГрдврд╝рддрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдПрдЪрдЯреАрдкреАрд▓рд┐рдВрдХ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреБрд░реЛрдз рдХреЗ рдмрд╛рдж рдЕрд╡рд▓реЛрдХрди рдпреЛрдЧреНрдп рдкреВрд░реНрдг рд╣реЛрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди (рдЖрдорддреМрд░ рдкрд░) рдХреИрд╢ рдЕрдкрдбреЗрдЯ рд╕реЗ рдкрд╣рд▓реЗред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдкреЛрд▓реЛ-рдХреИрд╢-рдореЗрдореЛрд░реА рдкрд░ рдкреАрдЖрд░ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рдпрд╣ рднреА рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдлреЛрд░реНрдХ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдпрд╛ рдирд╣реАрдВред рдХреИрд╢ рдФрд░ рд▓рд┐рдВрдХ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЕрдкреЛрд▓реЛ 2 рдХреА рдкреНрд░рддрд┐рд░реВрдкрдХрддрд╛ рдпрд╣ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреИрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдЖрдк рдЗрд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдкреЛрд▓реЛ-рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдХреЛрдИ рдореБрджреНрджрд╛ рдЕрдЧрд▓рд╛ рдХрджрдо рд╣реЛ (рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЕрдкреЛрд▓реЛ-рдХреИрд╢-рдЗрдирдореЗрдореЛрд░реА рдХрд╛ рдЕрдкрдирд╛ рд░реЗрдкреЛ рд╣реИ)?

рдпрд╣рд╛рдВ рд▓рд┐рдВрдХ рд╕реЗ рдереЛрдбрд╝рд╛ рд╣рдЯрдХрд░ рд╡рд┐рд╖рдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред

@ рд╣реЛрд▓реНрдорди рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдлрд╛рд░реА рддрдХрдиреАрдХреА рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдореЗрдВ рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрджрд░реНрдн рд╣реЛрдЧрд╛?

@sedubois рдпрд╣ рдПрдХ рдпрд╛ рджреЛ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ (рдЕрдЪрд╛рдирдХ рдЕрдЪрд╛рдирдХ) рдЧрд┐рд░рд╛ред рдпрд╣ рддрдХрдиреАрдХреА рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдореЗрдВ рд╣реИ , рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдХрд╛рдлреА рдХреБрдЫ рдЬрд╛рдирд╛ рдмрд╛рдХреА рд╣реИ ред

@2WheelCoder рдореБрдЭреЗ рдПрдХ рдирдП рдХреИрд╢ рдХреЗ рд▓рд┐рдП рдЕрдкреЛрд▓реЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИред рд╢рд╛рдпрдж apollo-offline-cache рдЬреЛ apollo-cache-inmemory рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдореИрдВ рдЙрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реВрдВред рд╡рд╣рд╛рдБ рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

@2WheelCoder @danieljvdm рджреГрдврд╝рддрд╛ рдХреЗ рд▓рд┐рдП LocalForage рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ https://github.com/localForage/localForage рдпрджрд┐ рдЖрдк рд▓реЛрдЧ рдПрдХ рдкреАрдЖрд░ рдЦреЛрд▓рддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдПрдХ рд╣рд╛рде рдЙрдзрд╛рд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ

@danieljvdm рд╣рд╛рдБ, рдпрджрд┐ рдЖрдк рдкреАрдЖрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓реВрдВрдЧрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдЧрд▓реЗ рдбреЗрдврд╝ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕рдХреЗ рдмрд╛рдж рдЗрд╕рдореЗрдВ рдХреВрджрдХрд░ рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред

@Eishpirate рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ LocalForage рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд░рд┐рдбрдХреНрд╕-рдкрд░рд╕рд┐рд╕реНрдЯ рд╕реНрдЯреЛрд░ рдХреЛ рдмрдЪрд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рд╡рд╣ рдХрд╛рдлреА рдареЛрд╕ рдерд╛ рдФрд░ рд╕рдВрднрд╡рдд: apollo-offline-cache рдореЗрдВ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рднреНрдп рдкреИрдЯрд░реНрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рджреЛрд╕реНрддреЛрдВ, рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрд╢реА AsyncStorage рдореЗрдВ рд╕реНрдЯреЛрд░ рдбреЗрдЯрд╛ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрдбрдХреНрд╕ рдкрд░реНрд╕рд┐рд╕реНрдЯ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдЕрдм рдпрд╣ рдХреИрд╕реЗ рдХрд░реВрдБ? рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

@Eishpirate : рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрд╢реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рдВрдЧрддрддрд╛ рдЪрд╛рд░реНрдЯ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред https://github.com/localForage/localForage/wiki/Supported-Browsers-Platforms

рдЕрдкреЛрд▓реЛ рдХрд╛ рдСрдлрд▓рд╛рдЗрди рдлреАрдЪрд░ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рддреЛ рдмрд╣реБрдд рджреБрдЦ рд╣реЛрдЧрд╛..

@timLoewel рдпрд╣ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдЬрд┐рддрдирд╛ рдЖрдЧреЗ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ред рд╡рд┐рд╢реНрд╡рд╛рд╕ рдордд рдХрд░реЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдФрд░ рдЖрдЧреЗ рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд╣рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдП рдмрд┐рдирд╛ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИ рдпрд╛ рдирд╣реАрдВ

рджрд┐рд▓рдЪрд╕реНрдк рд▓реЗрдЦ рдЬреЛ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ https://blog.logrocket.com/build-an-offline-first-app-with-react-and-rxdb-e97a1fa64356?t=now

рдпрд╣ рдСрдлрд╝рд▓рд╛рдЗрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ rxdb рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢рд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рд░рд┐рдПрдХреНрдЯ, рд░рд┐рдПрдХреНрдЯ-рдиреЗрдЯрд┐рд╡, рд╡реАрдпреВ, рдПрдВрдЧреБрд▓рд░, рдХрд╛рдлреА рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓рддреА рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдкрд╛рдЙрдЪрдбреАрдмреА (рдХреЙрдЪ рдбреАрдмреА рдХреЗ рд╡реНрдпреБрддреНрдкрдиреНрди) рдЬреИрд╕реЗ рдиреЛрдПрд╕рдХреНрдпреВрдПрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдПрдХ рд░рд┐рд▓реЗрд╢рдирд▓ SQL рдбреЗрдЯрд╛рдмреЗрд╕ (Postgres) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реЗ рд╕рднреА рдбреЗрдЯрд╛ рд╕рддреНрдпрд╛рдкрди рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрддрд░ рдкрд░ рд╣реЛрддреЗ рд╣реИрдВред рдЕрдЧрд░ рдореБрдЭреЗ рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛, рддреЛ рдореБрдЭреЗ jsonschema рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рддреНрдпрд╛рдкрди рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣ DRY рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореБрджреНрджреЛрдВ рдХреЛ рдкреЗрд╢ рдХрд░реЗрдЧрд╛ред

рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рд╡рд╣ рд╣реИ рдХрд┐рдВрдЯреЛ http://docs.kinto-storage.org/en/stable/index.html рдЬреЛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдЬрдЯрд┐рд▓рддрд╛ рдХреА рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рддреЛрдВ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХрд┐ rxdb рдкреЗрд╢ рдХрд░реЗрдЧрд╛ред рдХрд┐рдВрдЯреЛ HTTP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-http https://github.com/apollographql/apolo-link/tree/master/packages/apollo-link-http рдореЗрдВ рдкреНрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрд╛рдо рдХреИрд╢рд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдВрдЧреЗред

рд░реЗрдбрдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ? (рдореИрдВ рдЧрдВрднреАрд░ рд╣реВрдВ)

рдПрдХ рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-рдСрдлрд╝рд▓рд╛рдЗрди рдкреИрдХреЗрдЬ, рдЕрдкреЛрд▓реЛ-рдСрдлрд╝рд▓рд╛рдЗрди рдХрд╛рд░реНрдп рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдФрд░...
рдПрдХ рдЕрдкреЛрд▓реЛ-рдХреИрд╢-рд░реЗрдбрдХреНрд╕ рдкреИрдХреЗрдЬред рд░реЗрдбрдХреНрд╕-рдСрдлрд╝рд▓рд╛рдЗрди/рд░реЗрдбрдХреНрд╕-рдкрд░реНрд╕рд┐рд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреИрд╕реЗ рдЕрдкреЛрд▓реЛ-рдСрдлрд╝рд▓рд╛рдЗрди рдЕрдм рдХрд░рддрд╛ рд╣реИред

рдЕрдкреЛрд▓реЛ рдиреЗ рдЗрдирдореЗрдореЛрд░реА-рдХреИрд╢ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ, рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ - рдореИрдВ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдЗрддрдиреА рдирд┐рдХрдЯрддрд╛ рд╕реЗ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдВрдзреЗ рд░рд╣рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред рд▓реЗрдХрд┐рди redux/redux-offline/redux-persis рд╕рдорд╛рдзрд╛рди рдЗрддрдирд╛ рдпреБрджреНрдз-рдкрд░реАрдХреНрд╖рдг рд╣реИ ... рдпрд╣ рдЕрднреА рднреА рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рддреАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдмрд╣реБрдд рд╕рдХреНрд░рд┐рдп рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЕрдкреЛрд▓реЛ-рдХреИрд╢- рд░реЗрдбрдХреНрд╕ рдЕрдм рдореМрдЬреВрдж рд╣реИ, @ rportugal . рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

@giautm рдореИрдВрдиреЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдореЗрд░реА рдПрдХ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ, рдЙрд╕реЗ рдареАрдХ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд▓ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИ: apollo-link-queue ред рдпрджрд┐ рдЖрдк рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡ рдпрд╛ рдпреЛрдЧрджрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред

рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдРрд╕реА рдХреЛрдИ рдЪреАрдЬрд╝ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдСрдлрд╝рд▓рд╛рдЗрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдкреЛрд▓реЛ рд╕реЗ рд╣реИ рдФрд░ Redux рдСрдлрд╝рд▓рд╛рдЗрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ?

@рд╕реНрдорд┐рдереИрддреБрдлреЗ ,
рд╣рд╛рдВ, рдЖрдк рдЕрдкреЛрд▓реЛ-рдХреИрд╢-рдкрд░реНрд╕рд┐рд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ

@ рдЧреНрд░реЗрдЧрд░ 1971
рдЗрд╕ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдЙрдВрдЧрд╛ рдФрд░ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╕рдмрдорд┐рдЯ рдХрд░реВрдВрдЧрд╛ред
рд╕рддрд╣реА рд░реВрдк рд╕реЗ, рдпрд╣ рдЕрдЪреНрдЫрд╛ рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИред

рдпрд╣ рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-рдХреНрдпреВ рд╕реЗ рдХреИрд╕реЗ рднрд┐рдиреНрди рд╣реИ

рд╣реЗ рджреЛрд╕реНрддреЛрдВ, рдореИрдВрдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдПрдХ рд╕рд╛рде рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдкреЛрд▓реЛ-рдСрдлрд╝рд▓рд╛рдЗрди рдХреЗ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред
(рдкрд┐рдВрдЧрд┐рдВрдЧ https://github.com/Malpaux/apolo-offline/issues/14)

рдЖрдк рдЗрд╕реЗ рдЗрд╕ рд╕рд╛рд░ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: https://gist.github.com/lachenmayer/2e364a5ca9ae0918eb032867d0c6720d

рдЗрд╕рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реИ:

рдЬрдм рдбрд┐рд╡рд╛рдЗрд╕ рдСрдлрд╝рд▓рд╛рдЗрди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдиреБрд░реЛрдз рдХрддрд╛рд░рдмрджреНрдз рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рдЬрдм рдпрд╣ рд╡рд╛рдкрд╕ рдСрдирд▓рд╛рдЗрди рд╣реЛ рдЬрд╛рдПрдЧрд╛ рддреЛ рдмрд┐рдирд╛ рдХрддрд╛рд░рдмрджреНрдз рд╣реЛ рдЬрд╛рдПрдЧрд╛ред ( apollo-link-queue )

рдиреЗрдЯрд╡рд░реНрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЕрдиреБрд░реЛрдз рдХрд╛ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрд╕реАрдо рд░реВрдк рд╕реЗ)ред ( apollo-link-retry )
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдпрд╛ рддреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдСрдлрд╝рд▓рд╛рдЗрди рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдмреИрдХрдПрдВрдб рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдпрд╣ рдиреАрдЪреЗ рд╣реИ)ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рд╣рдо рдХреИрд╢ рд╕реЗ рдХреНрд╡реЗрд░реА рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреИрд╢ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕реЗ optimisticFetchLink рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ "рдЖрд╢рд╛рд╡рд╛рджреА рдлрд╝реЗрдЪ" рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкреЛрд▓реЛ-рдСрдлрд╝рд▓рд╛рдЗрди рдХреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднрд╛рдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рдХрд┐рд╕реА рднреА apollo-link-offline рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдСрдлрд╝рд▓рд╛рдЗрди рд░рд╣рддреЗ рд╣реБрдП рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдРрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ network-and-cache рд▓рд╛рдиреЗ рдХреА рдиреАрддрд┐ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП , рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЬрд▓реНрдж рд╣реА рдХрднреА рднреА рдмрджрд▓реЗрдЧрд╛ (рджреЗрдЦреЗрдВ https://github.com/apollographql/react-apollo/issues/ 604#рдЗрд╢реНрдпреВ рдХрдореЗрдВрдЯ-355648596)ред

рдпрджрд┐ рдЖрдк рд╕рд╛рд░ рдХреЛ offlineLink.js рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

import { InMemoryCache } from 'apollo-cache-inmemory'
import { ApolloClient } from 'apollo-client'
import { createHttpLink } from 'apollo-link-http'

// get this from https://gist.github.com/lachenmayer/2e364a5ca9ae0918eb032867d0c6720d
import { createOfflineLink } from './offlineLink'

const cache = new InMemoryCache()
const networkLink = createHttpLink()

const offlineLink = createOfflineLink({ cache })

const link = ApolloLink.from([
  // ... + other links ...
  offlineLink,
  networkLink,
])

const client = new ApolloClient({
  cache,
  link,
}

рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛рдПрдБ / рдЕрдиреБрдкрд▓рдмреНрдз рдмрд┐рдЯреНрд╕

  • рдпрд╣ рдЕрднреА рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП isOnline рдЪреЗрдХ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреИрд╢ рдореЗрдВ рдХреЗрд╡рд▓ рдЖрдВрд╢рд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдПрдХ рдЕрд╕реНрд╡реАрдХреГрдд рд╡рд╛рджрд╛ рдорд┐рд▓реЗрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрдзреВрд░реА рд╣реИред рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкреЛрд▓реЛ-рдСрдлрд╝рд▓рд╛рдЗрди рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рд╕рдВрдХреЗрдд рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред
  • рдЖрдк рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЛрдИ рднреА рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рд╕реЗрдЯрд┐рдВрдЧ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ - рдЗрд╕реЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рдЖрд╢рд╛рд╡рд╛рджреА рд▓рд╛рдиреЗ рдкрд░ рдЖрдкрдХрд╛ рдХреЛрдИ рдирд┐рдпрдВрддреНрд░рдг рдирд╣реАрдВ рд╣реИред рдЖрдк рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЕрдкреЛрд▓реЛ-рдСрдлрд╝рд▓рд╛рдЗрди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВ ( {__online_: true} рдХреНрд╡реЗрд░реА рд╡реИрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХрд░рдирд╛), рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рднреА рдирд╣реАрдВ рд╣реИрдВред

рдореИрдВ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕реЗ рдЖрдЬрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрд░ рд╕рдорд╛рдзрд╛рди рдвреВрдВрдв рд░рд╣рд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╣рдо рдЗрд╕реЗ рдЯрд╛рдЗрдкрд┐рдВрдЧ, рдкрд░реАрдХреНрд╖рдг, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдЪрд┐рдд рдПрдирдкреАрдПрдо рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдЕрдкреЛрд▓реЛ-рдХреНрд▓рд╛рдЗрдВрдЯ 2 рдХреЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдЗрд╕рдХрд╛ рдХреЛрдИ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред

рдПрдХ рдЕрдЪреНрдЫрд╛ тЬМя╕П

@рд╕реНрдорд┐рдереИрддреБрдлреЗ ,

рдпрд╣ рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-рдХрддрд╛рд░ рд╕реЗ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рднрд┐рдиреНрди рд╣реИ?

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-рдХреНрдпреВ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмреБрджреНрдзрд┐рдорд╛рди рдЪреАрдЬреЗрдВ рдХрд░рддрд╛ рд╣реИред рдЕрдкреЛрд▓реЛ-рдХреИрд╢-рдЬрд╛рд░реА рдХреИрд╢ рдмрдЪрд╛рддрд╛ рд╣реИ; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ рдЖрдкрдХрд╛ рдРрдк рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ред рдХреИрд╢ рдХреЛ рдмрдирд╛рдП рд░рдЦреЗ рдмрд┐рдирд╛, рдЖрдкрдХреЛ рдРрдк рдХреЛ рд╕реНрдЯрд╛рд░реНрдЯ рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА,

рд╣рдо рдКрдкрд░ рджрд┐рдП рдЧрдП @lachenmayer рдХреЗ рд╕рдорд╛рдзрд╛рди (рдЬреЛ рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-рдХреНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ) рдФрд░ рдПрдХ рдХреИрд╢ рдЬреЛ рд▓рдЧрд╛рддрд╛рд░ рд╣реИ, рджреЛрдиреЛрдВ, рдпрд╛ рдмреЗрд╣рддрд░ рдЕрднреА рддрдХ рдЪрд╛рд╣рддреЗ рд╣реИрдВред (рд╣рдо рд▓рд┐рдВрдХ рд░реЗрдкреЛ рдореЗрдВ рдЪреИрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдлреЛрдХрд╕ рдЙрд╕реА рдкрд░ рд╣реИ)

@lachenmayer рдкрд╣рд▓реА рдирдЬрд╝рд░ рд╕реЗ, рдЖрдкрдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрд╣реБрдд рдЖрдХрд░реНрд╖рдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИред

apollo-offline рдХреА рдЖрд╢рд╛рд╡рд╛рджреА рдлрд╝реЗрдЪ рд╕реБрд╡рд┐рдзрд╛ рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░ рдореИрдВ рдЖрдкрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕рд╣рдордд рд╣реВрдБред рдпрд╣ (рдпрд╛ рдмрд▓реНрдХрд┐ рдЗрд╕рдХреА рдХрдореА) рдХрд╛рдлреА рд╣рдж рддрдХ рдореБрдЭреЗ apollo-offline рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░рддрд╛ рдерд╛ред

рдореИрдВ рд╕реНрд╡рдпрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдХрд╛рдлреА рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ apollo-offline рдореЗрдВ рдЖрд╢рд╛рд╡рд╛рджреА рд▓рд╛рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЪреБрдирд┐рдВрджрд╛ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо/рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдХреНрд╡реЗрд░реА рд╡реИрд░рд┐рдПрдмрд▓ рдкрд╣рд▓реА рдкрд╕рдВрдж рдирд╣реАрдВ рдереЗ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рдмрд╕реЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд▓рдЧ рд░рд╣реЗ рдереЗред рдЖрдк рдХреНрдпрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрдВрдЧреЗ?

рдЕрдЧрд▓реЗ рджреЛ рд╣рдлреНрддреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рддрдирд╛рд╡рдкреВрд░реНрдг рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрд╕рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЕрдкреЛрд▓реЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдк-рдЯреВ-рдбреЗрдЯ рдСрдлрд╝рд▓рд╛рдЗрди рдкрд╣рд▓реЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА - рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ apollo-offline рдкреИрдХреЗрдЬ рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛ рдпрд╛ apollo-link-offline рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реЛ

рдзрдиреНрдпрд╡рд╛рдж @MLPXBrachmann!
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрд╢рд╛рд╡рд╛рджреА рдлрд╝реЗрдЪрд┐рдВрдЧ рдХреЛ fetchPolicy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЕрдЧрд░ рдореИрдВ рдХреИрд╢ рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЖрдирд╛ рдЪрд╛рд╣рддрд╛, рддреЛ рдореБрдЭреЗ network-only рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@lachenmayer @MLPXBrachmann

рдореИрдВ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдФрд░ рддреИрдпрд╛рд░ рд╣реВрдВред

рдореИрдВ рднреА рдЕрдкреЛрд▓реЛ рдРрдк рдореЗрдВ рдСрдлрд▓рд╛рдЗрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реВрдВред @lachenmayer рдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реБрдкрд░ рдЖрд╢рд╛рдЬрдирдХ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-

@nicocrm рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ ... рдлрд┐рд▓рд╣рд╛рд▓ рдСрдлрд╝рд▓рд╛рдЗрди рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдЬреНрдпрд╛рджрд╛рддрд░ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдкреЛрд▓реЛ рдХреЗ рдкрд╛рд╕ рдЕрднреА рдЕрдиреНрдп рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдПрдХ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ apollo-link-offline рдмрдирд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдЕрднреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЪрд░реНрдЪрд╛ рдФрд░ рдкреНрд░рдЧрддрд┐ рд╣реЛрдЧреА

@benseitz рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реВрдВред рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдмрд╣реБрдд рд░реБрдЪрд┐ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдПрдХ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рд╣реИ - рдЬрдм рддрдХ рдореИрдВ рдореМрдЬреВрджрд╛ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдпрд╛ рдЦрдВрдбрд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рдЕрдкреЛрд▓реЛ-рд▓рд┐рдВрдХ-рдСрдлрд╝рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдЯреАрдо рдФрд░ рд░реЗрдкреЛ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╕рднреА рдЗрдЪреНрдЫреБрдХ рд▓реЛрдЧреЛрдВ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ . рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реБрдЪрд┐ рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рдПрдХ рдЧреНрд░рд╛рд╣рдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЬреЛрд░ рджреЗ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рдЬрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдШрдВрдЯреЗ рд╣реЛрдВрдЧреЗред рдореИрдВ рдЕрдкреЛрд▓реЛ-рдСрдлрд╝рд▓рд╛рдЗрди рд░реЗрдкреЛ рдкрд░ рдкреВрдЫреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рдЗрд╕ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрдиреБрднрд╡ рд╣реИред

рдЗрд╕рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реБрдЪрд┐ рднреА рд╣реИ - рдЗрд╕ @nicocrm рдкрд░ рдЖрдкрдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред рдореИрдВрдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдкрд░ рдЕрдм рддрдХ рдХреЛрдИ рдЦреЛрдпрд╛ рд╣реБрдЖ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рд▓реЗрдХрд┐рди tbh рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрди рд╕рднреА рдЪреАрдЬреЛрдВ рдХрд╛ рдареАрдХ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ (рдХреЗрд╡рд▓ рдЕрдм рддрдХ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рд╛рде рдФрд░ рдпрд╣ _seems_ рд╕рдм рдХреБрдЫ рдареАрдХ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рд░реЗрдкреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рд╕рдордЭрджрд╛рд░реА рд╣реЛрдЧреАред @MLPXBrachmann рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ apollo-offline рдХрд┐рдпрд╛ рд╣реИ, рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрдЧрд▓реЗ рдХреБрдЫ рд╣рдлреНрддреЛрдВ рдореЗрдВ apollo-offline рдореЗрдВ рд╕реБрдзрд╛рд░ рдкрд░ рдЦрд░реНрдЪ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕реЗ apollo-link-offline рдХрд╣рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ apollo-offline рд╕реЗ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рдХреЛрдб рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╣реА рд░реЗрдбрдХреНрд╕-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИред

@nicocrm рдореИрдВ apollo-link-offline рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦреЗред

@benseitz рдореБрдЭреЗ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ apollo-link-offline рд╢реБрд░реВ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдирд╛ рдмрд╣реБрдд рдкрд╕рдВрдж рдХрд░реЗрдЧрд╛ред

@lachenmayer рдЖрдк рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реИрдВ, apollo-offline рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдФрд░ рдирд┐рдпреЛрдЬрд┐рдд apollo-link-offline рдкреИрдХреЗрдЬ рд╢рд╛рдпрдж рдХрд┐рд╕реА рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдкреЛрд▓реЛ 2.0 рдмреНрд░рд╣реНрдорд╛рдВрдб рдореЗрдВ рдСрдлрд╝рд▓рд╛рдЗрди рдЯреВрд▓рдХрд┐рдЯ рд╕реЗрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдкреВрд░реНрд╡ рдХреА рдХрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рдЕрднреА рднреА рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВред

рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдореБрдЭреЗ apollo-link-offline рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдВ рдФрд░ - рдЬреИрд╕реЗ рд╣реА рдореЗрд░рд╛ рд╢реЗрдбреНрдпреВрд▓ рдереЛрдбрд╝рд╛ рдореБрдХреНрдд рд╣реЛ рдЬрд╛рдП - рдХреБрдЫ рдХреЛрдб рднреА рдпреЛрдЧрджрд╛рди рджреЗрдВред

@MLPXBrachmann @lachenmayer @nicocrm рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рд╕рд╣реА рддрд░реАрдХрд╛ рд▓рдЧрддрд╛ рд╣реИ!
рдЪреВрдВрдХрд┐ рдЕрдкреЛрд▓реЛ рд╕реНрд▓реИрдХ рдкрд░ рдХреЛрдИ рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЪреИрдирд▓ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ apollo-link-offline рдирд╛рдордХ рдПрдХ рдЦреЛрд▓рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рд╣рдорд╛рд░реЗ рдмреАрдЪ рд╕рдВрд╡рд╛рдж рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПред рд╕рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рд░реНрдгрдпреЛрдВ рдХреЛ рдЕрднреА рднреА GitHub рдореБрджреНрджреЛрдВ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рдЖрдк рдореЗрд░реЗ рд╕рд╛рде рд░реЗрдкреЛ рдФрд░ рд╕реНрд▓реИрдХ рджреЛрдиреЛрдВ рдЪреИрдирд▓ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИрдВ рдпрд╛ рдЖрдк рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ?

рдЬрд╝рд░реВрд░, рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВрдиреЗ рдЖрдк рддреАрдиреЛрдВ рдХреЛ рд░реЗрдкреЛ рдореЗрдВ рд╕рд╣рдпреЛрдЧреА рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИред рдФрд░ рдЖрдк рдЕрдкреЛрд▓реЛ рд╕реНрд▓реИрдХ рдореЗрдВ #apollo-link-offline рдЪреИрдирд▓ рд╕реЗ рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ

рдмреЗрд╢рдХ рд╕рднреА рдХреЛ рдЧрд┐рдЯрд╣рдм рд░реЗрдкреЛ рдкрд░ рд╕рд╣рдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рд╕реНрд▓реИрдХ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ :)
рдореИрдВ рдмрд╣реБрдд рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдБ

рдЖрдкрдореЗрдВ рд╕реЗ рдЬреЛ рд▓реЛрдЧ Google рдЦреЛрдЬ рд╕реЗ рдпрд╣рд╛рдВ рдкрд╣реБрдВрдЪреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЖрдЬ рдЕрдкреЛрд▓реЛ рдХреНрд▓рд╛рдЗрдВрдЯ 2.0 рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╕рднреА рдореМрдЬреВрджрд╛ рдСрдлрд╝рд▓рд╛рдЗрди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рд╣реИред

https://github.com/benseitz/apolo-link-offline/issues/1#issuecomment -371678922

рдХреНрдпрд╛ рдЕрдкреЛрд▓реЛ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдРрдкрд╕рд┐рдВрдХ рд╕рдордХрдХреНрд╖ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ? рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкреНрд░рд╢реНрдиреЛрдВ рдФрд░ рдореНрдпреВрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рдСрдлрд╝рд▓рд╛рдЗрди рдХреНрд▓рд╛рдЗрдВрдЯ рдХреИрд╢рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рди рдХрд┐ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд╕рдорд╛рдзрд╛рди (рдпрд╛рдиреА рд▓реИрдордбрд╛, рдбрд╛рдпрдиреЗрдореЛрдбреАрдмреА, рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рд╕рд░реНрдЪ)ред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

@masull рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрд╛ рдХрд┐ рдлрд╛рдпрд░рдмреЗрд╕ рдпрд╛ рдкрд╛рд░реНрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╢рд╛рдирджрд╛рд░ рд╣реЛрдЧреАред
рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рди рд╕рдордп рд╣реЛ рд░рд╣рд╛ рд╣реИ ... рдмрд┐рд▓реНрдХреБрд▓ рднреА рдордЬреЗрджрд╛рд░ рдирд╣реАрдВ :)

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ChenRoth picture ChenRoth  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Nickersoft picture Nickersoft  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

maktouch picture maktouch  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bwhitty picture bwhitty  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

NicholasLYang picture NicholasLYang  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ