{大きかった}{非対応舞覧}{減らしたかった}{性能低下}{高負荷時}{大きな負荷}{録出力}{選択的読み込み}{離立備立}{やや混乱}...=}(97)

{希哲15年9月3日の開発 K#F85E/A-E74C-339B}

気になっていたデライト高速化に関する問題をいくつか片付け出振るいした。結果として大きな体感表示速度向上が見られた。

離立備立デバッグ備立切り分け

やや混乱していた kn cpl などを整理しながら,離立備立デバッグ備立切り分けられるようにした。5月デバッグ出力整備デバッグ出力録出力切り分けておいたことも奏功し,作業円滑進んだ

これまで,本番環境でも deln.fcgilibxtdxpo.Pgデバッグ出力無効化していなかった。特に大きな負荷になる要素ではないが,高負荷時性能低下要因極力減らしたかった

精神衛生的な面でも効果が大きかった。長い実験段階を終え,一つの製品として完成に向かうデライト象徴する出来事のような気がして嬉しかった

デライトの WebP 対応

一般用者自我アイコンWebP 化完了し,添付画像を除き,現時点で出来るデライトの WebP 対応完了した。

添付画像仕様再検討

先月31日12歩ではすっかり忘れていたが,互換性問題があるため,当面は元画像WebP共存させておくことにした。特に,Safari対応遅かったため,まだ WebP への統一時期尚早だろう。

非対応舞覧市影小さく,デライトにおける譜類添付機能もそれほど本質的付徴ではないため,割り切って無視出来なくもないかとも考えた。いずれにせよ,気になるのはストレージ容量なので,それが問題になるまでは様子見することにした。

外部スクリプト選択的読み込み

輪郭を含むページ無条件読み込んでいた KaTeXhighlight.js を,必要場合だけ後縁出力させるようにした。

体感表示速度への影響はこれが一番大きかった

交度記法における言語管理にも応用出来る。

{Meson}{新生デライトの要件}{日本語表現}{換配確認機能}{確認ボタン}{プレビュー機能}{開閉状態}{応用の可能性}{確認用}{ページ読み込み時}...=}(109)

{希哲15年8月1日の開発 K#F85E/A-E74C-7A28}

新生デライトの要件

もう考えていても仕方ない段階に来ているので,とりあえず雑に書き出しておく。

舞覧手定め環境整備

舞覧手定め環境整備一環として,SLFSChrome59最新版92更新

3月15日7歩でも試みているが,その時は libxkbcommon不足失敗依存性地獄懸念して中断した。

libxkbcommon引装には MesonNinja の引装が必要で,Meson と Ninja には Python 3 の引装が必要だったものの,それ以外に直接必要なライブラリはなく,意外とあっさり更新出来た。

これで SLFS では FirefoxChrome最新版が使えるようになり,手定め用iPhone 7近日中手に入る予定なので,舞覧手定め環境整備はここで一段落とする。

Android 端末向けの舞覧手持ちのスマホで,Edge 含め,Windows 向けの舞覧Windows 仮想機で使える。

実機仮想機では主に最新舞覧を使い,古い舞覧などは LambdaTest などのサービス利用すれば十分だろう。

輪郭選り手抜控機能整備など

描き直し選り手同期するように調整

とりあえず,選り手が開いている場合に内容同期させるようにだけしておいた。これで複数窓で同じ輪郭の選り手が開いていても混乱しにくくなり,内容が長い場合には複数窓で別々の箇所を編集することも出来るようになった。

現状,抜控のある選り手はページ読み込み時に開くようになっているが,閉じている場合でも別窓で抜控が出来た場合は開いたり,別窓で閉じた場合は自動的に閉じたりと,開閉状態同期もしようかと思っていた。これは止めておいた。

開閉状態の同期はしない方が,一方の編集用にして,一方の窓を確認用するなどといった応用の可能性が広がることに気付いた

現状では描き直し完了選り手閉じる機能的に一緒になっているが,複数窓有効活用を考えると保存と閉じるで分離すべきか。取り消しボタンを閉じるために使うかと思ったが,操作性を考えると,今の完了ボタンを保存・閉じるの二段階にする方向が良さそうだ。

そんなことを考えているうちに,保存せずに換配後プレビューが出来る機能についても検討し始めた。概念操作複雑化を避けることを考えるなら,完了ボタン機能現状維持プレビュー機能本命かもしれない。

プレビュー日本語表現は「確認」が分かりやすいだろう。内部的には「換配確認機能」や「確認ボタン」と呼んでおくことにした。

=}
{〜時}{完了}=}(2)
{輪括弧}{希哲15年4月13日の開発}{「コピーしました」}{「コピー済み」}{「コピー完了」}{写し取りボタン}{希哲15年4月13日の進捗時限}{希哲15年4月13日の進捗}{希哲15年4月13日}{修正済み}...=}(37)

{希哲15年4月13日8歩 K#F85E/A-E74C-5CB3}

待っ読ボタン実装

写し取りボタンの追加・出振るい手定めを概ね完了。これをもって待っ読ボタン実装はいったん終了とする。

写し取りボタンには絵文字📋)を使うことにした。元々ごちゃごちゃしたボタンを置くための小窓なので,統一感が無くても問題ない,というのは発見だった。

これは共有ボタンにも応用出来そうだ。


写し取りボタン写し取りした時の表示「コピー完了」採用した。

輪括弧による写し取りでは「コピー済み」になっていたが,これはいま完了したというよりも時間的距離を感じさせる表現だった。かといって「コピーしました」はやや冗長な気がした。

「コピー済み」も,やや大袈裟な感じがする「コピー完了」とやや冗長な「コピーしました」の間を取ったものだった。ただ,その後の描き直しボタン完了ボタンで,慣れれば「完了」もそこまでくはないと感じていた。

ここで「コピー完了」に統一しておくことにした。修正済み

{希哲13年}{デライト高速化}{希哲15年4月8日の日記}{HTML の肥大化}{動的読み込み}{認識が甘い}{前縁の重要性}{前縁最適化}{思わぬ収穫}{装体適用}...=}(104)

{希哲15年4月8日の開発 K#F85E/A-E74C-86B0}

3日の開発から6日間に渡って続いたデライト小理腑をいったん終えた。

結果的には主に装体書整理テンプレート整理だったが,これにより,保守性体感表示速度大幅向上が見られた。


装体書テンプレートは, によるデルン初期実装から長いこと継ぎ足しで使ってきたため,古い記述譜類に埋もれて目的のものが探しにくいといった問題慢性的にあった。分割すべき記述が一つの譜類に詰め込まれている,逆に,一つにまとめておくべき記述が複数の離れた譜類に分散している,といったことがよくあった。今回の小理腑ではこの点が大きく改善した。

テンプレートの方は折に触れて整理してきたからまだマシだったが,装体書の方は適当に分割した譜類に大量の記述が詰め込まれている状態だった。そもそも SySS備立すら適当で,.syss 譜類があっても .scss が無いと換配されないなど,多数の譜類を管理出来る状態では無かった。これを機に備立方法から整備した。

装体書整理は当初,HTML の肥大化を恐れて埋め込み装体書見極めに時間をかけ過ぎてしまっていたが,この日,JavaScript や HTML に gzip 圧縮がかかっていなかったことに気付いた。ちょっとした deln.conf間違いだったが,これをきっかけ吹っ切れ作業捗るようになった。結局,転送量を大幅に削減出来た分,多少の冗長性には目を瞑ることにした。

これら作業の結果として,目的の装体テンプレートにすぐ握接出来るようになり,埋め込み装体書調整等も的確に行えるようになった。


表示速度は,ページにもよるが,DOMContentLoaded までの計測値0.5秒近く短縮した。これに装体適用合理化も加わり,体感表示速度ははっきり向上したのが分かる。溶明動き付けをいったん削除したのも大きいかもしれない。デライト初期実装読み込み中途半端遅さ誤魔化すため0.3秒の溶明を入れていた。

現時点でここまで高速化に繋がったことは思わぬ収穫だった。これまで,「デライト高速化」は後縁最適化中心に考えてきた。後縁最適化余地の大きさと負荷軽減重視していたこともあり,前縁最適化期待重視もしていなかった。

希哲13年前縁改革前縁の重要性は分かっていたつもりだったが,まだ認識が甘かったようだ。これに気付いたことも大きな収穫と言えるだろう。


そもそもスクリプト動的読み込みに使っている @icl() とその周辺整理によって生じた描画乱れ解消のために始めた作業で,あまり多くは期待していなかったが,結果的に大収穫となった。

ただし,10日までに盛り込むつもりだった付徴後回しになり,デライト収益目標達成にどう影響するかは不透明だ。

問題が解消するまで出振るい出来ず,他の作業が出来なくなっていたこともあり,作業項目としてのデライト小理腑はここでいったん完了とすることにした。整理が必要な部分はまだまだ残っているが,ほとんどは漸進的作業出来る部分だ。いま出来る範囲でまとまった時間を使ってやる理腑はこれが限度だろう。

{Firefox}{希哲15年3月31日の開発}{気持ち悪い不具合}{Permission denied to access property "addEventListener" on cross-origin object}{サブフレーム}{length}{既知の不具合}{希哲15年3月31日の進捗時限}{希哲15年3月31日}{希哲15年3月31日の進捗}...=}(41)

{希哲15年3月31日10歩 K#F85E/A-E74C-7B0E}

共有ボタン不具合修正

原因究明修正完了

小窓が開かない場合があることに気付いて調査を始めたが,間もなく AdSense が表示されている場合に @win事象聴取子を登録しようとした時の問題であることを突き止めた。Firefox では「Permission denied to access property "addEventListener" on cross-origin object」という違了が出ていた。

これは Aejs における既知の不具合で,昨年7月16日の開発記録では「根本的解決策を施すことが出来た」と書いているが,単に AdSense よりも Aejs を先に読み込むようにしただけで,Aejs の欠陥は残ったままだった。どこかで iframe 内に addEventListener() を仕掛けているらしいということまでは突き止めていたが,それ以上調査する余裕が無かった。

今回の調査で,@tgt_evt.bld..on() 内で対象の length を調べて添え字握接している所が問題だったことが判明した。@elm.bld 個体であれば問題ないが,@winwindow)でこれをやるとサブフレームに握接してしまうことになる。

単純に,対象が window であった場合は飛ばす処理を加えて解決した。

ずっと気になっていた気持ち悪い不具合解決したのは収穫だった。

{完了}
{}