revise July 2022 poor network articles
Build and deploy / deploy (push) Successful in 13s

This commit is contained in:
2026-07-31 13:51:28 +03:00
parent 2bfc9d929f
commit ec1fa93fd2
7 changed files with 673 additions and 1 deletions
@@ -0,0 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="540" viewBox="0 0 900 540" role="img" aria-labelledby="title desc">
<title id="title">Учебные состояния отправки черновика при плохой сети</title>
<desc id="desc">Диаграмма показывает черновик, блокировку offline, ожидание acknowledgement, неизвестный результат, повтор и подтверждение. Все состояния помечены как учебные.</desc>
<defs><marker id="arrow" markerWidth="10" markerHeight="10" refX="8" refY="5" orient="auto"><path d="M0 0L10 5L0 10z" fill="#1d4ed8"/></marker><style>.box{stroke-width:3;rx:16}.h{font:700 25px Arial,sans-serif;fill:#102a43}.t{font:18px Arial,sans-serif;fill:#243b53}.s{font:15px Arial,sans-serif;fill:#52667a}.line{stroke:#1d4ed8;stroke-width:4;fill:none;marker-end:url(#arrow)}.label{font:700 16px Arial,sans-serif;fill:#1d4ed8}</style></defs>
<rect width="900" height="540" fill="#f7fbff"/>
<text x="42" y="48" class="h">Учебная модель: видимое состояние важнее догадки о сети</text>
<rect x="45" y="100" width="210" height="112" class="box" fill="#e0f2fe" stroke="#0284c7"/><text x="68" y="140" class="h">Черновик готов</text><text x="68" y="172" class="t">version + local copy</text><text x="68" y="196" class="s">не равно server save</text>
<rect x="45" y="330" width="210" height="112" class="box" fill="#fef3c7" stroke="#d97706"/><text x="68" y="370" class="h">Offline</text><text x="68" y="402" class="t">попытка не планируется</text><text x="68" y="426" class="s">черновик остаётся</text>
<rect x="345" y="100" width="210" height="112" class="box" fill="#dbeafe" stroke="#2563eb"/><text x="368" y="140" class="h">Ждём ack</text><text x="368" y="172" class="t">request + attempt key</text><text x="368" y="196" class="s">success ещё запрещён</text>
<rect x="345" y="330" width="210" height="112" class="box" fill="#fee2e2" stroke="#dc2626"/><text x="368" y="370" class="h">Unknown</text><text x="368" y="402" class="t">нет model acknowledgement</text><text x="368" y="426" class="s">не факт о сервере</text>
<rect x="645" y="100" width="210" height="112" class="box" fill="#dcfce7" stroke="#16a34a"/><text x="668" y="140" class="h">Подтверждено</text><text x="668" y="172" class="t">ack + accepted version</text><text x="668" y="196" class="s">новый draft отдельно</text>
<path d="M255 156H337" class="line"/><text x="273" y="140" class="label">submit</text>
<path d="M150 212V321" class="line"/><text x="170" y="274" class="label">declared offline</text>
<path d="M345 183C295 235 294 274 345 331" class="line"/><text x="240" y="260" class="label">нет ack</text>
<path d="M555 156H637" class="line"/><text x="576" y="140" class="label">ack</text>
<path d="M555 386C624 386 625 216 556 184" class="line"/><text x="578" y="310" class="label">retry: тот же request,</text><text x="612" y="332" class="label">новый attempt</text>
<text x="45" y="495" class="s">Граница: SVG описывает contract UI; здесь нет HTTP, Fetch, service worker, trace или измеренного network outcome.</text>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB