作成者別アーカイブ:

jQueryでページから離脱する際に確認メッセージを表示する

 Wordpressなんかそうだけど、投稿画面で入力中にページ移動しようとすると確認メッセージが出る。
 愛用しているThinkPadも、カーソルキーの上キーの左右がページ前後移動キーになっているので誤って押したり、マウスのスイッチで入力中にページ移動してしまって入力したフォームが消えてしまうアクシデントがあるので、この角にメッセージが出るのはなかなか便利。

 これを自分のページに実装するのは簡単で、

$(window).bind("beforeunload", function(e) {
    return "入力内容はまだ保存されていません、ページ移動しますか?";
});

のようにして、メッセージをreturnすると、その内容を表示したポップアップが出てくれる。 AlertとかConfirmとか書いてもChromeには無視された。

 このままだと常時出てしまうので、登録ボタンを押した場合にはメッセージを表示しないようにするために、

<input type=’submit’ onclick=’javascript:$("body").append("<input type=\"hidden\" name=\"no_unload_confirm\" value=\"1\">");’>

みたいにsubmitボタンのonclickで正常動作フラグを立てて

$(window).bind(‘beforeunload’, function(evnt){
    if(!$(‘input[name=no_unload_confirm]’).val()) return ‘入力内容はまだ保存されていません、ページ移動しますか?’;
});

みたいにフラグが立っているかチェックするようにすれば良い。

(605)

カテゴリー: jQuery | タグ: , | コメントをどうぞ

ユニークなID(UUID)を使う

 プログラムを書いていて、よく使うiとかnとかの変数名を使うと、たまに別の処理の変数と重複してカウントがおかしくなったりして永久ループ、みたいなことがある。
局所的な変数で、意味を持った名前にする必要がない場合などには、変数名をUUIDにしてしまうのが便利かもしれない。
 UUIDは、重複する確率が非常に低いランダム値で、182c9037-b8c9-4055-8fe0-b3f98d7e3e13みたいな感じの値で、2の122乗パターンがあり、世界中で適当に生成してもほぼユニークになる。
 MACアドレスとかは管理されて使っているけど、UUIDは管理しないでもユニークになることが期待されるので自由に生成して使って良い事になっている。 ので、勝手に生成してデバイスやライブラリの識別子等に使われている。

 Linuxのコンソールで、

uuidgen

とか打つと生成できる。

 command not foundな場合は、CentOSのyumならe2fsprogsパッケージに含まれているので、

yum install e2fsprogs

を実行。
 パッケージがe2fs(Ext2 FileSystem)な事からもわかるが、ドライブのフォーマット時にUUIDを生成してつけて、それを識別している。

 飛び飛びで関連性のあるコード追加時に行コメントにUUIDを貼り付けておいて、関連コードがわかるように管理するとかいう使い方もできる。

(423)

カテゴリー: LAMP[Linux, Apache, MySQL, PHP] | コメントをどうぞ

POSTしているページの「Webページの有効期限が切れています」を抑制する

 Webでブラウザバックした場合、「Webページの有効期限が切れています」等と出て、以前の入力内容が表示できないことがある。
 これは、ページリクエストがPOSTのページでキャッシュが無効になっている場合、再度POSTしないとページ内容が表示できないと言う事。
 最新の内容を表示させることを目的としていれば、この表示は妥当で、再度POSTしてもらうべきではあるが、入力ページなどで戻るボタンで移動したとき、前回の入力内容が表示できた方が便利だけど、この動作だとリロードになって入力内容がリセットされてしまうため、この動作を変更する。

 PHPでの実装は簡単で、
session_start()前

session_cache_limiter(‘private_no_expire’)

をセットすれば良い。

 これで、ページキャッシュが有効になって、ブラウザバックしたときには前回入力内容がそのまま表示される。

(666)

カテゴリー: PHP | コメントをどうぞ

GMOクラウドVPSを触った – UnixBenchでベンチマーク測定

 以前から気になっていたGMOクラウドのVPSだけど、仕事関係でそいつで動いているホストを触った。

 UnixBenchを測定してみた結果、マイクロプランでさくらVPSの2GB(v3)プランとだいたい同じくらいの結果になった。 狙って設定したかと思うくらい(各項目毎も)近い結果で、お名前.com VPSのようにディスクアクセス激弱ってこともない。

 GMOクラウドVPSは初期費用がかかるのと、ディスク容量がさくらの200GBに対して100GBしかないってのはあるけど、1月払いでさくらの1480円に対して1380円と100円安。 6ヶ月払いだとGMOクラウドVPSは7080円、さくらは6ヶ月の割引設定無し。 12ヶ月払いでGMOクラウドVPSが11760円で、さくらは16280円となって、1年利用なら初期費用2980円払ってもGMOクラウドVPSの方が安くなる。

 ついでに、GMOクラウドVPSはGMOクラウドの株式優待が使える(半年5000円キャッシュバック。 同社株式は今日の終値で44800円)ので、6ヶ月2080円で使えるんで、さくらの契約を1本解約してGMOクラウドVPSを1本契約しようかと思う。
先月末がGMOインターネット・GMOクラウドの権利確定で、両社とも取得しておいたので、9月下旬にそれぞれの優待パンフが送られてくるはず。

GMOインターネットの優待はお名前VPSの方で使おう(CPUパワーが高いから、お名前はお名前なりの利点がある) <= GMOインターネットの優待はお名前とGMOクラウドで使えるけど、GMOクラウドの優待はお名前が使えない。 どっちかだけ買うなら、GMOインターネットを取得した方が良い(終値で39500円で安いし)

 と言うわけで、来月からの体制は、さくら 2GB 1本(Windows化)、お名前 2GB 2本、GMOクラウド マイクロ 1本にして、ASP.NETをさくらに、LAMPとJ2EEをお名前にそれぞれ、グループウェアとかメールとかの本番系をGMOクラウドに入れようかな。
全部IPSec張って、重要なファイルをRSYNCで相互複製して(ファーストサーバ爆死事件怖すぎ)

(131)

カテゴリー: レビュー | タグ: , | コメントをどうぞ

jQuery uploadがFirefoxで構文エラーをはいて転ける

 jQuery.upload(http://lagoscript.org/jquery/upload) 1.0.2のminified版を入れたら転けた。 Firefoxだけこけた(V.14.0.1)

h=”jquery_upload”+ ++p;

っていう記述があって、IEとChromeは正常に処理するんだけど、Firefoxは

h=”jquery_upload”+++p;

って解析していた。 +みっつ。

そんなわけで、

h=”jquery_upload”+(++p);

に書き換え。

ほんとにちょいメモだけどこれ大事。
ChromeやIEで普通にロードして普通に動いていたけど、ふとした機会にFirefoxで表示したら見事に構文エラーになって転けてページ全体死んでいた。

(285)

カテゴリー: jQuery | タグ: , | コメントをどうぞ

jQueryパーツ、ページを内部で自動リロードさせる

 jQueryでページの一部をリロードさせる。
 一発表示するだけのページを定期監視する為のスクリプト。

<html>
    <head>
        <meta http-equiv=’Content-Type’ content=’text/html; charset=UTF-8′>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" charset="utf-8"></script>
        <script type="text/javascript">
        <!–
        $(document).ready(function(){
            var loading = setInterval(reload, <?php echo("$_GET[‘interval’]"); ?>*1000);
            function reload(){
                $("#loading").html("now loading…");
                $.get("<?php echo("$_GET[‘url’]"); ?>", {}, function(page){
                    $(‘#page’).html(page);
                    $("#loading").html("&nbsp;");
                });
            }
            
            reload();
        });
        // –>
        </script>
    </head>
    <body>
        <span id="loading">&nbsp;</span>
        <hr>
        <div id="page"></div>
    </body>
</html>

PHPファイルとして保存して、http://hoge.tld/file.php?url=/log.txt&interval=30 みたいにリクエストすれば、/log.txtを30秒ごとに更新表示できる。

(1401)

カテゴリー: jQuery | タグ: , | コメントをどうぞ

GMOクラウドVPSが値下げされた

 GMOクラウド VPSのサービスは従来、割高感があったんだけど、5日から値下げされた。
 マイクロプランで12ヶ月払いだと月あたり980円で、CPU3コア、2GBメモリ、100GBのHDDになっている。 12ヶ月払いすると、さくらVPSの980円プランよりちょっとリソース的に有利かな?
 とりあえず、GMOクラウドの株を持っていて、半年あたり5000円引きで利用できるので、6ヶ月契約してみようかな。
 しかし、初期費用が3000円弱かかるのが微妙だなぁ。 お試し期間があればいいんだけど。

(173)

カテゴリー: LAMP[Linux, Apache, MySQL, PHP] | コメントをどうぞ