t_wの輪郭

Feedlyでフォローするボタン
デライト(なんでもメモ)oEmbed
希哲17年1月16日の開発

作業方針検討4歩閲覧専用模動実装検討5歩デラング整備埋め込み記法処理改良8歩13歩

埋め込み記法処理改良

これまで埋め込み記法処理の中でも oEmbed利用したものについては,Dex 内で埋め込み交度取得直接描写 HTML埋め込んで返していたが,埋め込み交度取得処理専用 API /mbd委ね前縁 Aejs から利用することにした。結果として応答速度改善成功した

埋め込み記法+[URL]URLoEmbed必要とする場合Dex では適当な分類名付与した <div>出与え属性URL埋め込んで描写 HTML返すAejs ではそれを検知し,URL/mbd転送する/mbdURL対応したサービス埋め込み交度oEmbed取得して返す,という流れになる。過剰な立求抑止するため,Aejs には簡易的な隠し持たせておいた

想像していたよりすっきり実装出来た


そもそもきっかけは,先日の SlideShare 対応だった。oEmbed必要になったので,埋め込みツイート使っていた Dex 内の oEmbed 埋め込み方法取り急ぎ使った。ただ,記法処理範枠同期通信処理組み込むというのは正気の沙汰ではないなんでこんな実装になっているのか,引っかかりはあった。

KNEST 隠し使った SSR 的なことを考えていたことはあるので,その辺の都合だったのだろうと思ったが,現状そこまで最適化する必要時間も無い出来たとして,隠し有効利用出来る握接パターン限られているいずれにせよこの種の埋め込み記法利用増えてくれば破綻目に見えている。ということで,いったん埋め込み処理前縁移すことにした。

9日SlideShare 対応後,意外にもすぐに若干の応答速度低下感じるようになり,作業優先順位が上がったスライドの埋め込み自体はデライト公式での紹介輪郭でしか使われておらず因果関係不明だったものの,時期あまりにも一致していたGoogleクロール統計でも,9日以後はそれ以前と比べて100ms以上平均応答時間増加連日見られ体感とも一致していた


ざっと AejsoEmbed利用する交度書いて実行してみると,CORS違了発生し一気に記憶蘇ってきた

元々前縁やろうとしていたのを,CORS 問題面倒後縁完結にしたのだった。よほど高尚な理由がないとこの実装ありえないだろうと深読みしていたが,なるほど単なる一時凌ぎというがあった。当時の記録残っていた

仕方ないので,当時面倒臭がってやらなかった専用 API作ることにし,/mbd追加したAejs には埋め込み記法処理集約する @mbd追加した

中継サービス利用するのが一番簡単な方法だが,信頼性使い勝手などで不確実性が高い


出振るい後すぐに明らかな体感速度向上見られたもう少し様子見必要だが,見込み正しかったか。だとしても,応答速度低下原因はっきりしていない原因究明かけられる時間無い

一つの輪郭中の一つの oEmbed 通信サービス全体応答速度低下招いたとは考えにくい考えられるとすれば,握接集中立求処理詰まった,あたりか。SlideShare 対応によって気付かない内に何らかの問題持ち込み,埋め込み記法処理改良によって解消したか,全く別の問題偶然同時期発生していただけ,という可能性なくはない

いずれにせよ今回の埋め込み記法処理改良によってデライト安定性効率性大きく向上したのは間違いない従来の方式では,ページ内oEmbed利用する回数×通信時間応答速度低下があった上に,描写 HTMLタグ削除をしている RSS でも無駄な通信発生していた

これは方式によらず発生しうる問題だが,下見機能などで頻繁に更新する場合,その都度 oEmbed 通信発生していたことに気付き,@mbd客体変数使った隠し持たせておいた役割分担進んだことで今後はこうした最適化やりやすくなる/mbd隠し持たせることも検討しておくことにした。

少し懸念していたのが埋め込み献典描画速度だったが,これも全く気にならなかったそもそもこの手の埋め込み献典描画遅いものなので,多少変化では分からない

総合的に大成功言えるだろう。