Televi 0.9

October 14th, 2005

Televi 0.9 をリリースしました。

  • iframe の使用を停止。
  • 更新ボタンを "U" から "Update" に変更
  • Done ボタンを Apple 公式のものに変更。
  • 更新中の処理経過の表示を変更。

あたりが主な変更です。この他にも、いろいろ細かい部分の完成度が上がっていると思います。

どうも Dashboard で iframe を使うと、メモリまわりでクラッシュするようなので、Televi 0.9 では CSS でフレームもどきをつくり、そこに XMLHttpRequest でローカルファイルを流し込んでいます。

function readFile(path) { 
    var req = new XMLHttpRequest();

    req.open("GET", path, false); 
    req.send(null);

    var resp = req.responseText; 
    if (resp) { 
        return resp; 
    } else {
        return null;
    }
}

ローカルファイルはこんな感じで読めます。もはや XML でも HTTP でもないですが。

def escape_multibyte_char(s)
  s.gsub(/./u) do |c|
    if c.length == 1
      c
    else 
      "&##{c.unpack('U')};"
    end
  end
end

WebKit で XMLHttpRequest といえば文字化け。HTML を書き出す Ruby 側では、こんな感じでマルチバイト文字をすべて数値実体参照に置き換えています。