ひらがなを含むユーザー名の皆さまへ

0

Posted on 14-04-2009 | Maintenance - メンテナンス情報 | タグ: ,

ユーザー名にひらがなを入れている方が、プロフィールを編集しようとすると
ローディングの状態のまま反応しなくなるという問題を修正しました。
(うにょうにょ画像やくるくる回る画像のまま、コンテンツが出てこない)

該当する方、たくさんいらっしゃると思います。
大変、申しわけありませんでした!

技術的な解説

jQuery で Ajax を使った通信をするときの URL にマルチバイト文字列が
入っていると、何やらおかしなことが起こるようです。(常識なのかも?)
もともと英語圏で開発されたライブラリを使っているので、日本語の
取り扱いには注意が必要ってことですね。はい、反省してます…。

URL として渡す文字列を encodeURL するように修正、サーバ側での
リクエスト URL のチェックでエンコード後の文字列を通すように変更、
URL で渡されたパラメータのエンコード・デコード処理を再度チェック、
(もともと一括処理してる)などの作業を行いました。

なお、今回の不具合は、 こちら にて親切なユーザーの方に教えていただきました。
とても助かりました。ありがとうございます。

これからも精進いたしますので、よろしくお願いいたします。

サイト全体の体感速度がUPしました

0

Posted on 26-01-2009 | What's New - 新着情報 | タグ:

ページデータの読み込みが速くなるように改善して体感速度を上げました。
今回の変更で、Firefox や Safari では最大200%程度速くなっています。
が、IE 7では JavaScript の処理が重く、効果は微妙かもしれません…
(IE 6 の方がなぜかマシなのですよねぇ)スミマセン。

追記:別のマシンからアクセスしてみたら IE 7でも早くなってました!
テスト用にはとてもご老体のノートPCを使っているので…

技術的な解説

jQuery + Ajax を使って、ページの一部のみを読み込むように変更しました。
その際に問題になるのが、「ブラウザの戻るボタンが効かなくなる」という点
ですが、以下のライブラリを使わせていただくことでこれを回避しています。
jQuery History

このライブラリを使うと、URL の # 以降にページの状態を記憶できます。
注意すべきなのは、# 以降に URL エンコードが必要となる ASCII 文字以外の
文字列(日本語やスペースなど)を使うと、callback 関数が 2 回呼ばれると
いう仕様になっている点です。

そのような使い方をしたい場合は(例:#/page2?q=英語で)
一部の条件式をエンコードをそろえた式に書き換えれば問題なく使えます。