2016年4月でした。1年後、新しいホームページへの段階的な移行を開始する準備が整いました。 英国からの少数のユーザーから始めて、数週間かけて徐々にすべてのユーザーを新しいホームページに移行します。 移行が完了する前に、かゆみが彼女を見ているなら、それはで利用可能ですwww.bbc.co.uk/news/0
新しいホームページの概要
- 前のものよりも軽くて高速です:
- このサイトはHTTPS経由でアクセスでき、近い将来、保護されていないトラフィックをすべてリダイレクトする予定です。
- ページは私たちのCSSフレームワークで定型化されているコンポーネントに基づいて反応するグランドスタンド 。
- 各コンポーネントは、データを収集するページの水平方向の「スライス」です。 これにより、どのページでもスライスを簡単に使用できます。
- すべてのコンポーネントは、当社のリアクト成分-AS-AN-使用してレンダリング反応するAPIエンドポイントサービスを、ページに接続するページ-アセンブリ-AS-A-サービスサービス。
- Reactはサーバーでのみ使用されます。 ブラウザ側ではダウンロードしません。
- 開発チームは5人の開発者と1人のテスターで構成されていますが、BBCの60人以上の開発者とテスターとも協力しています。
次は?
メインページの現在のバージョンは、タスク番号1、パート1です。 今後数か月で大幅に変更します。 あなたが見ると期待できるいくつかのアイデアがあります:
パフォーマンスの改善
既にパフォーマンスが大幅に改善されているという事実にもかかわらず、まだやるべきことがたくさんあります。
- 最初の重要なレンダリングはまだ長いです。 基本的なCSSを早期にロードすることで改善できます。
- ユーザーに送信するバイト数が多すぎます。 これのほとんどはインラインスタイルであり、IE8でのみ使用されます(更新:これらのスタイルの3分の1を削除するプル要求を既に送信しています)。
- 低電力デバイスでは、スタイルとレイアウトの再計算に時間がかかりすぎます。 まだ研究が必要です。
- ページの上部にある「白いBBCパネル」によって完全に接続されています。 このパネルには、BBCの他の部分(検索、通知、BBC ID)のコンポーネントが含まれています。 これらのすべてのコンポーネントは、ホームページのリソースの前にブロッキングCSSとJavaScriptをロードします。 近い将来これが変わることはほとんどありませんが、これらのコンポーネントを開発するチームと協力して、パフォーマンスへの影響を軽減したいと考えています。
設計改善
メインページをより速く起動するために、ページ設計に関してUXおよび編集チームと多くの妥協を行いました。 導入を終えた後、ストーリーブロック(プロモーション)の視覚的な部分を改善して、特派員と選択したパーティクルのストーリーを強調します。 現在の設計は次のようになります。

以下は、他の種類のプロモーションを表示する方法に関する提案の1つです。

ブラウザーで反応する
早い段階で、ブラウザのReactは、ほとんどが静的なテキストと画像であるページに対して冗長になると判断しました。 非常に多くのJavasciptを組み合わせてブラウザで実行することによるパフォーマンスへの影響も非常に高くなります。 サーバー側のレンダリングを使用しても、エミュレートされたモバイルデバイスは、ページでReactが起動されたときに、スクリプトとレンダリングの実行のほぼ4倍の時間を費やしました。

ページに反応しません

ブラウザでの反応効果
現在のアプローチでは、Reactコンポーネントとは別に、古い方法でJavascriptをコンパイルします。 ただし、これは長時間スケーリングできないため、最終的にはパフォーマンスに影響を与えずにブラウザーでReactコンポーネントを使用する方法を見つける必要があります。 私たちが検討しているソリューションは次のとおりです。
- 使用Preactは、代わりに反応します。
- で私たちのコンポーネントの変換のステートレスな機能コンポーネント 、可能であれば、そのサイズを削減します。
- スマートを使用したコードの分割を要求に応じて二次コードをロードできるようにします。
翻訳元