Ktai Style 1.43 を使用してみた

というわけで、いつもお世話になっているWordPressの携帯対応プラグインである『Ktai Style バージョン1.43』をダウンロードしてアップグレードしておきました。

変更点はリンク先を見ていただければ分かるんですが、僕がプラグインを使用する上での大きな変更点は特にないようでした。ただ、動作確認として色々とサイトを見ているとちょっとおかしなことに気が付いた。

外部へのリンクをクリックしたときに、タイムアウトしてしまう場合があるのだ。中継ページの redir.php に行く前の状態で止まってしまう(携帯端末の接続時間内にリンクできずにエラーになる)。通信状況が悪いからページ遷移できないというわけではなさそうだったので色々と調べてみたところ、リンク先のサイトによってはうまくいくので、media="handheld"のチェック部分でタイムアウトしているのかなと予想し、redir.php のソースを修正しながらテスト。

結果としては、redir.php のdiscover_mobile()関数内にある、

if ( $byte_count > $timeout_bytes ) {

の直前部分に以下の行を追加することで、タイムアウトしてしまう現象は解消されました。

if (preg_match('!(</head>|<body[ >])!i', $contents)) {
    return false;
}

多分、media="handheld"がない場合に、コンテンツ内容をチェックし続けて遅くなっていると思い、このような処理を追加してみました。タイムアウトになるサイトとならないサイトの違いは良く分からなかったのだが、</head><body>の後にmedia="handheld"が来る事はないような気がするので、このような処理を加えてみました。

4 Comments

  1. なるほど、1.43 で最大読み込みバイト数を 8KB→32KB に増やしたので、遅いサイトだとタイムアウトになりそうですね。body タグが出てしまえば、link 要素が出ることが考えられないので、この対策は有効そうです。次回バージョンで取り入れてみます。

  2. 以前のバージョンとのソース比較は行わなかったのですが、1.43から読み込みバイト数が変わっていたんですね。気が付きませんでした。
    バージョンアップ後にこの現象に気が付いたのは偶然かと思いましたが、実際にタイムアウトが置きやすい状態になっていたんですね。

    当サイトから外部リンクしているページの場合、タイムアウトやページ遷移が遅い割合が案外多かったので、対処していただけるのであれば嬉しいです。
    どうもありがとうございます。

  3. よく調べますと、読み込みバイト数の増加は 1.41 → 1.42 でした。以前の 8KB だと、head 要素が大きいサイトで認識できないことがあったのが理由です。反面、タイムアウトは起きやすいかもしれませんね。
    あと、fclose() してない(!)という手抜きもあったので追加しておきます。

  4. [...] obile Link Discovery の検出) で不具合があったため、その修正がメインとなっています (かるた無病息災さんとか、ソニ☆モバさんとか。@天然無能さんもこれが原因かも?) 。その他にいくつ [...]

Sorry, the comment form is closed at this time.