áᏠá á˛áľ áááᣠá°á¨áá°
áľá áŠá፠á´áŹá˛á˝ áĽáŁááá ᣠáá áá á˝áá á¨á°ááá áŤááŽá áá áťááᢠáááłá˝áá á áááľá ᨠYandex á˘áŽ á¨á áááá˝ ááá˘áá˝ áĽá á¨áá°ááľ á ááłáľ á¨SRI á°ááŤááá˝ ááá˘
á ááľáŽ ááľáĽ á¨áááᣠááááť á áá¨ááľá áľ áá
áľ, áááľáá áľáá
ááľ á¤áľ á¨ááá˘áŤ á°ááŁáŤáľ áľáá°á áĽáŤá°áá áá - áĽáá
áááľá ááľáĽ.
á¨SRI áľáŤáá˝á áłáŞá á¨á°á¨áłá°ááᣠá¨á ááľ á ááľ áá ááľ ááŽááŤá á á᪠áśáľáľ á áá áá
ááśá˝á ááľáá áá áá˘
- á áááἠáĽáŤááłááą ááᢠá áááἠááľáŤáľ ááťá á áá áľá˘ áááá áĄáľá á˛ááá á¨ááŤá°áá á áá´ Seryozha áĽááłáá á áá¨á°áľá áĽá áľááŞááśá˝á áĽáť áá á¨ááľá˝ááᢠáľááá , áĽáŤááłááą á°á᪠áĽáá´áľ áĽáá°ááá áĽáá´áľ áĽáá°ááŤáá ááłá¨áľ á áá áľ.
- ááŤáľááŞááľ ááłáŠ á á áááἠáá á¨á°áá°á á˘áá áᎠá¨á áááἠááľá á ááŞáá˝ áľáá ááľ á¤áľ áĽáá á¨á áááá˝ áááľ áľáá ááľ á¤áľ á ááá¨áá áá áᢠá ááŤáá áááł á¨á°áá°áá á áááá˝ áĽáá°áá ááłá°áľ á áá áľá˘ áľááá , á JS áááá á ááľ á°ááŁá á á, ááá áá á ááłááľ áá áá áááŞáá á°ááŁá áá - áĽá á áŁá áĽáááłá¸ááá.
- á˝áá áááłáľ ááááŁáľ á¨ááá˘á á áŁá á áľáááá á˝ááł ááᢠá áááážá˝ á˛áá አáááŽá˝ á ááĽááľ áĽá¨á°áááᥠááᢠáá áĽáá° áááľ áŤáŽá ááᥠ"á á°ááłáłá áŚáł áááá¨áľ á ááľá˝áá ááĽááľ ááŽáĽ á ááĽá ᣠáĽá áá áŚáł áááľá¨áľ áááľ áá á ááĽááľ ááŽáĽ á ááĽá á˘" á á¨áá á áłá˛áľ á´áááááá˝á áĽááááá - áĽááąá á¨áááľ ááľáĽ ááľááŁáľ áĽá áĽááąá áá¨áłáľ ááťá á ááĽáᢠáľááá , á áŚáľá°áá á°ááŁá ááľáĽ, á ááľ áá᪠ááᢠáĽááá áá á¨ááŤáááá á´áááááá˝ ááá¨áłáľ ááłáĽ á á áá áá.
á áĽáŤááłááą á°ááŁá áľáá°á ááľáĽ áľá áľááááá á á°áŤá áĽáť áłááá áľá á¨á°áááą áľá á°áśá˝á áĽááááááłáá.
á°ááŁá 1ᥠáááľáááŽ
á¨ááááŞáŤá á°ááŁá á Yandex.Collections á˛áááá á ááᲠáźáŹááŹáŞá˝ á ááááĽá áĽáá´áľ áĽáá°áá°áŤ á¨ááŤáá áĽá á¨á áááááľ áŁáá°á¨áŁá á¨á áááá˝ ááᢠá°áá áłááśáá á°ááˇáá˘
áááł
á¨áááľááᎠáľá áŁá˘áŤ ááá áŠáĄ áľááŤáľáᣠáľáŤá áĽá á¨áľáá ááľ á¤áą áľááá áĽááľ ááá ááááŠáᢠáŁá˘áŤá á¨áłáá°á á áááἠáá á á°áťá áá á ááááľ á áá áľ (áá° á ááááŚá˝ á áááá˝áĄ-
1000px ,600px ,320px ,áááá ááá፠). áĽá á¨áááááá á á áááἠáá áĽáť ááᣠáľááá áĽáŁáá á፠áľááŞááľá á áá ááá˘áľááá°á˝ áááľ ááľáĽ áĽááľááŁáá-
- á¨ááá˘áŤ áá áá˝, á¨ááá áľááááááľ, á¨á áḠááá ááá¤, á¨á áḠááá áá á;
- á¨áľááá á ááááĽ;
- á¨á°ááŤáŠ á¨ááĽá¨ áááŽá˝ áááł ááá: á áááá á˛áŤááŁáĽáĄ á ááŤáŽá˝á áĽá á áááá˝á ááłá¨áľ, áá á¨áá¤áľ ááľáŽá˝á ááľáá , ááá°.
- á¨á áłá˝ á°áłááááľ (á á áἠáá á¨áłáá á áłážá˝ áľáŞáśá˝ ááľáĽ á°ááľáá)á˘
áĽá á á¨áá¨á°áá áááá-
- áááá á¨á˛á¤áľá¤áľ áááľááá˝á áá áá-flexbox, grid, ááá°.
- á¨áááá°á á ááááĽ;
- á áľá áĽá (ááá) áľá á¨-ááŽá°á°áŽá˝á áá áá, áá°áĽá°áĽ, ááááľ, á¨áá¤áľ áŽáľ áááťá¸áľ;
- á¨á¤á˝á˛á¤áá¤á á á˝ áá¨áááŤáŁ á á ἠá¨á°á°áŤ á¨ááá á°áá á ááŤáá˘
áľáŤá á áŁá á°á áá, áľááá á¨ááá°áŤáá áááá áá˝áá. áá ááĽáĽáá á áľááš ááááłáᣠáá á ááá áĽáááľáá ááłá¨áľ áá˝ááᢠá˛á¨ááą áááľ á áááá˝á áááŠáá - áá° áááľáááŽá áĽá á GitHub áá áŤááá á¨ááá áŽáľá˘
á áá°áŁá ááľáĽ á¨áłááąáľ á ááááŚá˝ áááŁáá ááłáŞáŤáá˝, áłáĽááśá˝ áĽá á´áľááśáá˝ áľááŞá áĽáť áłááá á¨áĽááá°á ááááŽá˝ ááá áá áŠ.
á¨ááááŞáŤáá á°ááŁá á ááŁáŤáľ áá¤áľ ááľáĽ á á°áťá áá á á°á¨áŁáááľ ááááŁáľ, ááá áźá áĽá áááááá˝ áá áŠ.
ááľáááśá˝
á¨á°áá°á áľá áŁá˘áŤ. áá ááá˝ áááľááᣠááá áá á ááłááľ áááśá˝ á ááłááľ áĽááŽá˝á áá á áá ááá - áá áá ááá ἠáááá ááá ááŤá°áááľ á ááťááᢠá áááᥠá áááľ á á áŤáľ áá áá áľááŞáá˝ áá¨áá áá˝ááᥠááá áľááŞá á¨á áŤáłáᣠá¨SRI á¨áá á á áááá áŤáá áĽááᣠáááľááᎠáŤáá áĽáá áĽá á¨áĽáá፠áá¨á áŤáá áĽááᢠáĽááą á áááá˝ ááá á ááá á˛áŞáá˝á á áá áá áá አáá˝áá, ááá ááá á áŤáąá áĽááŽá˝ ááá áá á.
á ááááĽá á¨á áááἠáá ááá á. ááľá á ááŞá áĽáŠáá˝á ááá áá á¨á°áᨠáááá ááá፠(áááá˝áᣠá¨áá°á á áťáťááᣠá¨á ááŤá áááłáá˝á ááá° á¨ááŽ) á áľáááᢠá¨áłá˝ á áŠá á ááááŞáŤá áľááŞá ááŁáá˝ áĽá áá áłáá˝ áá ááá áá áᢠáááá á¨á˛áááá áááśá˝ áááľ ááľáĽ á ááĄáľ áááśá˝ á áŁá á°á°áľáťáá: áááłá, á¨ááááŞáŤá á፠áá˝ á¨áĽááł áááą áŤáá° ááá á áá áľ.
á¨áááá°á á áááἠ- áá á ááááš áĽáť áŤáá°áá¨áá áľ á˛áá áá á á áśáľáľ áĽáŤáśá˝ ááá ááá á á áááἠá¨ááá°á áĽáľá¨ áááľá ááááᢠá ááŤá¨áá áááśá˝ ááľáĽ, á ááááĄá áá áłá°á á¨áá áľá. á ááłááśá˝ á¨áĽááá á¨áá°ááá áľááľ áááá°áĽ á¨áľá°áá áĽá áááá ááá áá° 1920 ááá°áá˝ á ááá á°áá, á ááłááśá˝ áłáŤáá á á áášáľ, ááá áá á á á ááá áĽáŠááš áá áá á°ááŁá á á°áἠá°ááááá.
á¨áľááá á ááááĽ. "áľááľ áá áá áá ááá¨ááłá" á ááá áĽáá° , á ááŤáŠ - áĽáá° . áĽáá° áĽáľá ááᣠá áĽááááš áĽáŠáá˝ áá áá ááľáááľ á ááá°ááᢠááá á°á á¨á°á°á ááá áááá á SRI áĽá ááá˝ ááľáĽ á áááá áá áᣠáá á á¨á˛áŞ áááŤáá˝á á áá áá áŤá°ááááᣠááá áá áŤá áŤá á ááĽá á áá°ááᢠáĽáą á¨ááŤáááá áááá á¨áľááá áááŤáá˝ - á áľááá á ááá áľ áĽá á áľááá á ááááá áľ áŚáł á¨áᣠáĽáŠ áá áᢠáááłá á¨áááá ááá - áĽá . á¨ááá á áá á¨áľááá áľááá - á¨áá˝áá áľáĽáĽá áĽá á¨áĽáŤááłááą áĽáá ááá (áĽáááš áĽáá áŤáľá°áłáľáŠáłá) ᣠáĽáá˛áá á¨á áľá áĽá / ááá áľá á¨-ááŽá°á°áŽá˝á á á ááá (áĽááśá˝ áĽáá á áľá°áłáľá¨áá ᣠááá áĽááłá áá ) á ááĽáŚá˝ ááľáĽá áá á - áĽá áá á¨áá áááľ áŤáá° áĽá scss) .
á¨áá°áŤ á°áá¸áŤáłá˝. á á°á°á á áľáŤ áá JS áá áá áĽáá°áááťá á˝áááᢠáĽáá
á˝ááŽá˝á á¨áááłáľ á˝ááł á°ááľáá - á°áá¸áŤáłá˝ áĽá
á á áá áá áá ፠áá˝ááᢠáĽá . ááá á áľááľ á ááŤá á°á¨á #á ááŤá-NáĄá¨á°áá°á¸ ~ .slider-inner .slider-slides. á ááąá á¨áá¤áľ á áááŤá˝ áłáĽá áá á á
áľáá°áá áá° á°áá¨á á áááł áááŁá. á áá
áĽá
á ááá ááá áľ áĽá á¨ááŤáľááááá áľááá á¨áľáááľ áá áá° ááŤáŁá áĽáááľáŁáá: ááá: áá°ááá (-33%). á¨á°áá¸áŤáłášá á á°ááŁá á áá¨áľ áá˝áá
á°áááá ááááŽá˝. áĽáá
ááá áá° áłá˝ áᣠáĽá á°ááłáłá ááŤááĄ.accordion-item input:á¨á°á¨ááá ~ .á áŽáá˛áŽá-ááĽá__áááľ. á á°ááŁá áŠá áá¨áľ áá˝ááá˘
á¨: áááŁá áĽáŁ áá áĽá :focu* áááśá˝ ááá. á áŁá á áľááá ááĽáĽ. á¨á áááá˝ áá á áá°á¨á ááľá°ááĽá áá áľ áážáľ á áĽáą áá á¨á°áá°á¨á° áá. á°á ááá áááá á áľáááłá¸á áá ááĽá¨áááľ ááá á á áá áľ. áá ááĽá á¨áá áá áá á áá á¨á áááááľ á áá á°á¨ááá§áᢠ"á°áááá" á¨áááá ááá á¨á°áŤáአáĽá á ááľáá ááá ááá á áá°á¨á°á°á (ááá áĽááłá áĽáŤáá á¨á°áᨠá˘ááá) áá ááĽá áá, ááááŤáąá á¨á፠á°ááá áĽá á áłáá. á áá ááááŤáľ á áĽá áĽáŤááá˝ áááŤá áĽá á áĽá áá áĽá°áááá. á°áááłáá˝ ááłáŞáŤáá˝ á áἠáĽáá°ááá¸á áááááľ á¨ááĽáá, áá á áááľ áááŁá ἠá¨áá áľá. áĽá áľá á¨áľááá áľáá ááľ ááĽáĄá áŤáá á°áá˝á áŤáá፠á ááľ á°á¨á᪠ááĽáĽá˘ áááŁá áŞáŤá á ááá°ááá á áŤá áŤáááᣠá áአáá á˛áŤááŁáĽáĄ á ááá áá°á á áĽáá°áá áááŤáᢠááááŁá ἠááá˝ á˘á˝áá á áŁá áŤáá°áľá°áŤá¨á áááľááᢠá ááᥠá ááá á á ááá á áľááá¨áľá˘
áĽáááá˝. á¨á¤ááááśá˝ áá á¨áá¨á°áą ááá ááážá˝ ááľááłáá˝ áááá¸á á áľááá áá. á á áááľ ááľáĽ ááá á áááľ á á˝á áłá á áá°ááᣠáľááá á áááŁá ἠáĽá á áááľ ááááłááľ á áááášá á¨á áá á áľá°áłá˝ áááľá¨á á á áá áᢠá°á áᣠá°áá¸áŤáłášá áĽá ááááŽá˝á áŤáááľ á á á ááá áĽáŠ áá¸áá˘
á¨á áἠáááá á´áááá á áá áá. áĽá á°áá˝ flexá á°á á áááᣠááá áá ááá á°á ááááá á áá áá áľáŤáá á áá ááááᢠá°áŁáŁáá á áľááá áĽá á áá á¨áá ááĽáĄ á°ááĽáŻá. á áĽááá á áŁá á°áŁáŁááá˝ ááááŤáľ á áááᥠá ááľ áŚáł á˘ááŤáᣠááŽáŁ ááá á°á¨á᪠ááĽáĽ á áá°áá ááá˘
á¨á á˝ áá¨áááŤ. á¨ááááá á áĽáŤááłááą á¨á áš áá¤áľ áá á áľááááá áŁá ᪠áá¨á áĽáť áá áᢠá¨á˘áá ááľáŠá áĽáá° á˘áá áá¨ááᥠá°áá˝ ááĽáŚá˝á á¨áá¨ááá˘
á¨ááá á°áá á ááŤáŠá á áĽ. áĽáá˛á áŤááá áĽáá¨áľ ááá¨áľ á áĽáá áá ááĄ- áĽá ááá ááá¨áĄ ᢠá ááá á ááá˘áŤáá áá°á á áĽá áááŤáá á ἠááľá¨á áŤáľááááá. áá á¨á°ááá° ááááľ á á - ááá˝ á¨áá áá¤áľ áááľáŤáľ áĽá á á ááŤáŠ á ááľ áá áŤáľáááĄáľ. áá ááá á áłážá˝ á áĽá á ááá áąáᢠ, áĽá áĽáá°áá á áááľ áááľá áá ááá á áłá˝ á°áĽá áá ፠á áá˝áá. áĽá áá፠ááľáŤáľ á ááş á¨á áá áľááá ááá˘
á¨á áłá˝ á°áťá᪠á°áłááááľ. á áááá á áłážá˝ áááľ á¨á áἠáá áľáŞáśá˝ (áŤá IE - á°áłáłááá˝ áĽáľááá˝ áá áŠ) ᣠáĽáá˛áá á Safari á iPhones áĽá á Chrome Androids áá ááá ááá áĽáŠ áááá á á¨ááá áá á˘
á á°ááŤááᣠá ááľ á°á JS ááá Bootstrapá á¨á°á áá ááĽáŚá˝á áĽááááłááᥠáááąá á¨áá á°ááŁáŠá ááá áŤá¸áááᢠá¨áá á á áá ᨠBootstrap á°áłáłááá˝ á°áááś áĽáť áłááá ááľááá áĽá áá°á°áá አá áŤááľ áĽá ááĽáŚá˝á á áĽá°ááá˘
á á áááá¨áĄ áá á¨áá áŚáł áá áŁá˘áŤá¸áá áŤáľá°áááą á°áá˝ ááá á¨á°áᨠáĽá á á áááá - ááá áá ááááááš áá¨ááťáá˝á ááá¨áľ áĽá á áŽáááá°áŤá¸á áá á á áŤáŁá˘áŤá¸á ááľáŹáľ áŁáááťáá¸á á áŁá á°á°áľá°á áá áᢠáľááá áá ááŤáá á°á¨á᪠áá á ááááá.
á¨ááááŞáŤá á°ááŁá á ááááľ áá°ááŞá á áŁá á áá áá á. á áá áŤáá°áá ááá¸á á°áá˝ á¨á°ááá á¨ááá áľ ááĽá á áá¸á - á¨ááá ááážá˝ áá á áŠáŤáľ ááŤáŤá ááá á gh-áážá˝á áá ááá á áá˝ááá˘
á°ááŁá 2ᥠá¨áááᣠááááľ
á¨áĽáŤá á°áŤá˛ á¨ááá á áááá˝ áĄáľá ááá á´ááľ áŁáᎠááá˘
áááł
á¨áŽá¨áĽ áŤááł á áá ? áĽáą á¨áĽáŤááłááąá áŽá¨áĽ áľá ᣠáĽáá˛áá á¨áĽáą áá° ááá˝ áŽá¨áŚá˝ á áĽááá á°á¨ááśá˝ ááľáĽ áŤááá áááľ áŤáłáŤáᢠáśáľáľ áá᪠áĽá´áśá˝á ááá°áľ áŤáá áľá á¨áááľááá á°ááŁá áá°ááĽáŠ-ááááš á¨á¨áááĽáľ áľáá˝ á¨ááá áľ áá ᣠáĽá áĽá´áśáš áá° áŽá¨áŚá˝ áááśá˝ (á¨á ááľ-ááááľ áľáŤáá) ᣠáĽáá˛áá ᨠá¨ááááą ááááŞáŤ áĽá áá¨á¨áť ááĽáŚá˝ - áááአáĽá áá¨áṠᣠá á á°á á°á¨á°áᢠá°ááŁáŠ á¨ááááŞáŤá áŽá¨áĽ áĽáľá¨ áá¨á¨áťá áŽá¨áĽ áĽá á¨áá¨á°ááá ááááľ á áá áááľ ááááľ á áá áľ.
á¨á°ááŁá ááááĄ
const solution = function(graph, start, finish) { // ĐĐ°ŃĐľ ŃĐľŃонио }
á¨áá¤áľ ááἠááłááĄ-
const graph = { start: { A: 50, B: 20 }, A: { C: 40, D: 20 }, B: { A: 90, D: 90 }, C: { D: 160, finish: 50 }, D: { finish: 20 }, finish: {} }; const start = 'start'; const finish = 'finish';
ááłá áá ááľáĄ
{ distance: 90, path: ['start', 'A', 'D', 'finish'] }
ááłá°á˘áŤáĄ á¨áááľáá á á˝á á src/ ááá°á ááľáĽ á áᣠáááľááá á solution.js ááľáĽ áŤáľáááĄá˘
á¨ááá°áá á°ááŁá áá¨áá፠á áŁá á ááśáá˛á áĽá á°á¨áŁá áá á. á áĽáááš ááŁáśá˝ á¨á˛á ááľáłáŤ á áááŞááá áá°áá á á áľááá áĽáá°áá ááá°ááᢠááááŤáá áŤáá áĽá á áááŞááá á áá¤áľ ááľáĽ á°ááŁáŤá áŤá°á¨á á°áá˝ á áĽáŠ áááł á°á¨áááááᢠáááᣠáá°áŁáá áľáááľá˝áŁ á°ááłáłá áľá á°áśá˝ áŤáá¸á áĽá áá¨ááśá˝ á ááĽááááᢠá áááá¨áĄá á¨áŽáľ áááĽáŤáŽá˝á áááá áĽá á°áłáłááá˝ á áááŞááá á¨ááá áĄá áľ á˝áá á ááá°ááᢠáĽá á°áá˝ áŽáąá á¨á˝áá áá á¨á¸ááá á áľá°áŤá¨áľ áá áááá áŁá¸á á áŁá á¨ááŤáľá ááᢠáĽáá°ááá áŤá áĽáŤáá˝ áá á°á áá¤áľ á ááá°áá. ááá á áááľ áááŽá˝á áá áá á áá¨áá¨áá, ááá áá á ááľ á°á á¨áá˝ááá á áĽáááľ áĽáá˛áá¨áá áĽáááááá.
ááľáááśá˝
áá áá ááĽáŚá˝ ááá°ááá˝ á°á°áĽá°áá. á ááłááľ áá áááśáš á áá áŤáááŤá ááľáĽ áĽá¨á°áá áŤá¨á áŁá¨á áááá˝á áľá áĽá¨á°á¨á áĽá á áľááááášá áááá˝ ááááľ áŁáááťáá¸á áĽáť áá¨áŤáá˝ áĽáá°ááłáŠ ááá áá áᢠá áá á ááľ áĽáá°ááá áŤááľá á°áá˝ ááááłáľ áá¨áá áĽá áááá ááá áá° áŚáłá ááá°ááá¸áá. áá á áááĽáá áááľ áá° ááľáľá áľáááľ áááá¨á áĽá áľ á áá, áĽá áá á¨á áá á áá áá á á ááŁáá.
áĽáá˛áá "á°á", á áĽá áááááá˝ áá áŠ. áááłá, á¨á ááľ áá á áŽáľ ááᤠááá. ááá á°á á¨áŚáł áááł áľáŽá˝á ááá áá ááá á á°ááŤáá ááĽáĽ á¨á°ááá° á¨ááᢠáĽááľá á ááŤáááľ á ááľ á°áἠáá°á¨áľ áá á áĽá áśá˝á á áĽáĽá áĽá áśá˝ á˘ááአáĽá á´ááŽáááá˝á á áááá° áŤáľááᥠáá ááłá ááá˘
á¨áááľáá ááá˝ááľ áĽá á°ááŁá˘ááľ á á°áá á á°ááľáˇá. á á áá áá áŁá ááá áŽááá¨ááśá˝ 80% á¨ááŽááŤá á áľáŤá áľáŤ á¨ááá˝ á°áá˝á áŽáľ ááá ἠáŤáŤáľáłá ááá. á¨áľáá ááľ á¤áľ ááá˝ áĽááłá á¨áŽáľ áááááá˝á áááááłá - á¨á°ááŁáŁáŞááťá¸á áĽá áĽááľ á áĽááľá˘ áľááá áá áááá áľáá ááĽá°áľ áá á¨á. á¨á ááľ ááá á áá ááá á°ááááŽá˝ á¨áááŁá¸á áľáŤáá˝ áá አ- áĽáŁáŽáľá á áłáľááᢠá¨á°áłáłáááš á áľá°áŤá¨áľ á áŁá á á á¨áłá˝ áá á - á¨áľá´á áťáá á áľá°áŤá¨áśá˝ áá á°ááłáłá á¨áááľ á áľá°ááá˘
á¨áá¨á¨áťá ááľáááľ á ááśáá°áŽá˝ ááááľ áá. áĽááľ á°áá˝ áĽáť á¨ááŻá¸ááᣠáá áááá á°á á áŤááá¸á ááľáĽ áľáá áááľ ááá˘
áľáááá áááľá;
const solution = function(graph, START, FINISH) {
// ĐŃŃ Đ˝Đľ йоŃпНаŃнО в ŃŃОП ПиŃĐľ
const costs = Object.assign({[FINISH]: Infinity}, graph[START]);
// ĐĐľŃĐ˛Đ°Ń Đ˛ĐžĐťĐ˝Đ° ŃОдиŃоНŃŃкиŃ
нОд
const parents = { [FINISH]: null };
Object.keys(graph[START]).reduce((acc, child) => (acc[child] = START) && acc, parents)
const visited = [];
let node;
// ĐŃоП ÂŤĐ´ĐľŃŃвОгО ŃОдиŃоНŃ, ĐžŃПоŃаоП ĐżŃОКдоннŃĐľ
do {
node = lowestCostNode(costs, visited);
let children = graph[node];
for (let n in children) {
let newCost = costs[node] + children[n];
// ĐŃŃ Đ˝Đľ ĐžŃонона иНи наŃŃĐťŃŃ ĐąĐžĐťĐľĐľ Đ´ĐľŃŃвŃĐš поŃĐľŃ
Од
if (!costs[n] || costs[n] > newCost) {
costs[n] = newCost;
parents[n] = node;
}
}
visited.push(node);
} while (node)
return {
distance: costs[FINISH],
path: optimalPath(parents)
};
// ĐОСвŃĐ°Ń Đ˝Đ°ĐˇĐ°Đ´ пО ŃĐ°ĐźŃĐź ÂŤĐ´ĐľŃŃвŃП ŃОдиŃоНŃĐź
function optimalPath(parents) {
let optimalPath = [FINISH];
let parent = parents[FINISH];
while (parent && parent !== START) {
optimalPath.push(parent);
parent = parents[parent];
}
optimalPath.push(START);
return optimalPath.reverse();
}
// ĐиниПаНŃĐ˝Đ°Ń ŃŃОиПОŃŃŃ Đ¸Đˇ ŃокŃŃоК Đ˝ĐžĐ´Ń ŃŃоди нопŃĐžŃПОŃŃоннŃŃ
function lowestCostNode(costs, visited) {
return Object.keys(costs).reduce((lowest, node) => {
if (lowest === null || costs[node] < costs[lowest]) {
if (!visited.includes(node)) {
lowest = node;
}
}
return lowest;
}, null);
};
};
á°ááŁá 3ᥠá¨ááľá°áśá˝ á¨áá ááá áŞáŤ
á¨á áááá˝ ááá˘áá˝ Sergey Kazakov áĽá Alexander Podskrebkin á°ááá áˇáá˘
áááł
á¨áá á°ááłáá áááłá¨áľ áľáá˝ á¨áá ááá áŞáŤ áááᢠá¨áááąáľá áááááá áááááĽá ááá°áľ áá˝áá. áááłáᣠáĽ.á¤.á . á 2019 á¨ááľ áááľ áŽááá¨ááľ ááá ááĽáá˘
á¨áá ááá áŞáŤá áĽáá° áááá ááá°á á áá áľ. ááá˝ á¨ááľá ááľáááśá˝ á¨áá. á¨ááľá°áľ á áľáłáážá˝á ᨠ3ᣠ7 áĽá 14 áááľ á ááľ áááááľ ááťáᢠá¨ááááŞáŤá á¨á áááá¨áĄ ááá¨áľ á áá á¨áá ááá áŞáŤá á¨ááľáá áá ááááľ áĽá ááľáŤáľ á áá áľá˘
á áá ááĽáśá˝
á¨ááľ áááľ áŽááá¨ááľ ááá ááĽááĄ-
confs.tech/javascript? topics=javascript%2Bcss%2Bux á¨á áááááľ á°áŤá°áá˝;
developer.mozilla.org/ru/docs/Web/API/Service_Worker_API/Service_Workersá á áá áá
developers.google.com/web/fundamentals/primers/service-workers á¨ááłáááŤáá˝ á¤áá ááĄ
developer.mozilla.org/ru/docs/Web/API/Notifications_API
áŚáľá°áá á°ááŁá áááá°á˝ á áŁá á áľá°áłá˝ áá á, ááááŤáąá áĽá ááá á¨áá˝á áááľááá˝ áá áŠ, áĽáŤááłááłá¸á á¨áŤáłá¸á á áá¸á. áĽáŠá áŤáá°áááą á´áááááá˝á áĽáá´áľ áĽáá°ááá - áĽáá´áľ áĽáá°ááá¨áá áĽáá°ááŤáá ᣠáááľááášá áĽáá°áááá á á¨ááá áá á˘
ááľáááśá˝
á¨áłá á á¨áá ááá áŞáŤ. á áᣠá ááá áááááľ áá á¨á áľá˘ áááłáá á áľááá á¨áá°áą áĽá á ááľ á¨á˛á¤áľá¤áľ áŽáľ áŤááľááĄá áá áŠá˘ á áŁá ááŤáŞ á áááľáá, ááá áá ááá ááá á¨á°áŤ, ááĽáŚáš á ááááąá.
á¨ááľá°áśá˝á áááá á¨ááአá ááááľ áá. áá á¨á áááἠá°ááŁá á áá°ááᣠáľááá á ááľáĄ á¨á°áŤá°áąáľ á¨ááľá°áśá˝ áááá á áá°áá á¨áᢠá ááááá áá ááŁá¤á áá°á¨áᣠáááááĽá ááľáŤá ááá á á˛áľ áá¨á áľá˝ááá ᢠáľááá áá¨áá á¨áá ááá á áĽá á á°áá áá JSON áá°á¨áľ á ááááĄá ááľá áľ á áľááá áá á. áááĄá á ááááá ááááľ ááááľ á áľááá áá á (á¨áá፠áá´á á áá áá ááá XMLHttpRequest á áá áá)ᢠá ááľ á°á ááááá ááááŁáľ á¨á¨áᨠáĽá áááŤáá á readme áá ááááľ áŤá°á¨áᣠáá áĽáá° á°á¨á᪠ááá áŤáá˘
áŤáááá áľá
á°áśá˝ á¨á áááááľ á°áŤá°á áááᣠáĽá á¨ááááŞáŤá ááá¨áľ á áá á¨ááľáá áá ááľáŠá˘
á áľáłáá˝ á¨áááááľ á˝ááłá áľááá ᨠ3 ᣠ7 ᣠ14 áááľ á áá áĽáá˛á°áŤá˘ á¨ááłáááŤáá˝ á¤áá áá ááá¨áłáľ á áľááá áá ááŁ
á áśá á á´áľááśá áá á¨ááľááἠá˝ááł (PWA) á¨áááá ááá á á¨áááĽáá˘
Codestyle áĽá á¨ááŽáááľ ááá á. áĽáá° ááá°áá á°ááŁáᣠá ááľ áá á áŽáľ áľáłáá (á¨áĽá áá áŁáááłá°áá) á°áááá°ááᢠá ááłááľ áááśá˝ á ááá°á áá á°á ááš - á áŁá áĽáŠ ááá˘
á¨áŽááśá áľá á°áśá˝. á áŽááśá ááľáĽ á ááľ ááá áľá á°áľ áĽáá°áá ᨠá¨ááŤáłá á áááŤá˝ áŤá áĽá á°áłáłáá ááĽáą áľáŠá¨áľ áŤáá°á ᣠá¨á፠ááĽáŚá˝á áááľáá˘
áá¤áśá˝
á á°áłáłáááš ááłááá˝ ááľáĽ áá á áľáá ááá á á?
- á ááľ áá áá á¨áá¨á°ááá á˝áá ááááĄ- âá ááľ ááŽááŤá á á᪠áá°áᏠReact áá°áá áŞáŤ áĽááłááá á¨áľáśááᢠáĽáá´áľ áĽá ááá á ááá áĽáŤá áá¨áááŠáľ áĽá ááá¨áᢠá áŁá ááľááááᣠáľááą á¨á áá ááá áĽáááááᢠáá á á áááŹá˝á á áá ááŁá˝á áľá áĽá¨á°ááá áá áᣠáá á ááŤáłáá áááłáŁ á¨áĽáŠ áá°áá áááá¨áťá áĽáá˛á°áŤ áĽá á áá¨áłáá˘
- á ááľ áĽáŠ á¨RAR áá á°á áá°áááá áľ GitHub á ááá ááłá - á áá áá á áľá°áŤá¨áľ ááľá áľ á¨áŁáľ ááᢠđ
- áá áĽáŠ, á¨áááľáá.js ááá á¨ááááŞáŤ ááľáá áá áŁáá á áľá°áŤá¨áľ, áľáá° áááŠá áĽáá°ááá á á áááááľ á ááá.
á¨76 áĽáŠáá˝ áááá¨áť á°ááĽáá 23 á°áá˝á ááá ááᢠáá ááá˝á á¨áááľá áĽáť áłááá á¨ááľáŽáŁ á¨á´ááľ áá°ááľá áá áĽá á¨áłáłááľáłá ááá á°áá¨ááᢠá ááłááľ ááŁáśá˝ á áá áŁáá ááŤá¸á á áľááááááᥠá áá°áá á¨áá¨áá˛á á¤ááľáááľ á˛áá ááá°áá á¨á ááá á°á᪠ááá˘
áá¤áą á°ááŁáŤáľá á áá ááá áá á¨áľáŹáľ á°á¨ááá˝ á áľá°áłá˝ áľáááľ áá áᢠá°áłáłáááš á¨ááááŞáŤáá áľáŤ á á ááŤá 60% ᣠááá°áá á 50% áŤá ááá á˛áá áśáľá°áá á áŁá á¨áŁáľ áá á á ááŤá 40% á°á áá ááá˘
á ááááŞáŤ á˛áłá, á°ááŁáŽáš ááľáĽáľáĽ áĽá áá á¨áááľáľ áááľáá. ááááŤáą á á°áťá áá á áĽá áĽáŠáá˝á ááĽááľ áľááááá á áá°ááᢠá áľáá ááłá¸á áá áľ, á°ááŞáá˝ á¨áĽááá°á á áááľ á°ááŁáŤáľ áá ááááŁá - ááááľ ááľá¨á, Yandex.Music áááá˝ ááá Yandex.Weather á á á¨á áááł áá áĽáá ááá á°áá˝. ááá áááť áá°á¨áľ áŤáľáááááłá.
á¨áááľ á ááľ á ááľ á¨SRI ááá˘áŤ áľáŤáŹá á ááź ááźá áĽáá°ááááłá á áá°áĽ á áľáłááłááᢠá áá áá ááá ááá ááááĽ, áááłáášá á áĽááá ááá ἠáĽá ááľá¨á áááá áá. áááłááš á¨áááľááá 80% áŤá á ááááᢠáááłáᣠá áśáľá°áá á°ááŁá áááł (á áŁá á áľá¸ááŞá)ᣠá á¤áá˛á¤á áá áá° á áááááľ á°áŤá°áá˝ áĽá á¨ááłáááŤáá˝ á¤áá á á áááá˝á á¨áá¨ááᢠá¨áááŠá áááľ áŤá á á°ááŞáá˝ áŤáááá á˝áá á á ááááá˘
áá
á˝áá áá°ááľ áá° SRI ááááŁáľ áŁá°áĄáŁ áá° áááľá áľáá
ááľ á¤áľ áááŁáľ áŤááťáᣠááá áá áááááá á¨áá°á á°ááŁá á áááአáĽáŠáá˝ áĽáá˛áá ἠáĽááłááᢠáĽáá°ááłá¨á, áá
á ááľá¨á á áŁá ááťáá. á áŤáľá ááá áĽá áááá á¨á¸áááášá áááŽá˝ ááłáἠáĽáť áŤáľáááááłáá˘
ááá: hab.com