ePubを作る時、HTMLファイルは細かく分割しよう(iBooks用ePub関連)

あるePubファイルの読み込みに一分以上かかると聞きました。

「あれ?僕のファイル、そんなにかからないけどなぁ。ちょっと原因調べてみるか」
ということで、調べてみたところ、面白いことがわかったのでまとめてみます。

※ePubに関する全体の目次はコチラ

■まずは動画をご覧あれ

上記動画で全てですが、簡単に文字でご紹介します。

■今回使ったファイルは普通の小説相当のサイズ

一番読み込み時間に影響するのはHTMLのデータ量と思われます。
今回使った「吾輩は猫である」は1.5MByteでした。

■iBooksの読み込み処理を理解する

iBooksは、動きを見ていると

  • 初回の場合
    1. まずは最初のページを表示する
      この時は、読み込み進捗度合いが表示されません
    2. 表示できたら、本全体のページを計算する
      この時は、読み込み進捗度合いが表示されます
  • 二回目以降の場合
    1. 前回表示していたページを表示する
      この時は、読み込み進捗度合いが表示されません

ここで、「ページを表示する」ために、
ページを含んだHTMLファイルを全て読み込みます

つまり、HTMLファイルが大きいと、ここですごく時間がかかる上、
読み込み進捗が表示されないため
読者は「バグった!?」と思ってしまいます

ちなみに、全ページ計算時間は
本全体の文章量に依存するため、今のところあまり差はないようです。

■読み込み時間を比較する

ちなみに、どれぐらい変わるのか、ということを確認しました。

作成方法 初回起動時
(本をクリックしてからページ計算が完了するまで)
二回目以降
(iBooksをクリックしてから読み込みが完了するまで)
全文章を1つのHTMLに入れる 1分55秒 1分06秒
章ごとに分ける
(1ファイルあたり約200kByte)
1分01秒 0分11秒

正直、分割しないのはありえないと思います

■ePubを作る際、HTMLはできるだけ小さくしよう

読み込みに時間がかかるということは、
読むのを再開することがすごくおっくうになる」ということです。

つまり、ユーザ利便性が大きく低下するということ。
特に、モバイル向けのiBooksにとっては致命的です。
(移動中にちょっと読む、というニーズもあるため)

できるだけ、ePubを作る際、HTMLは小さくなるように意識しましょう。
例えば、章や節ごとにHTMLファイルを作成する、とかね。

0 件のコメント:

コメントを投稿