cakephp1.2 キャッシュエラーになる原因について

cakephp使っているとたまにキャッシュファイルがunlink出来なかったとかtouch出来なかったとか出る時がある。

通常アクセスが多い場合等、同時アクセスが起きた時に発生する場合があるらしいが、別にアクセスはほとんど無いのにキャッシュエラーが頻繁に起きるからなんでだろう~と思っていたら、ajaxが原因だった。

要は、ajaxでアクセスしてそれが返ってくる前に別のajaxアクセスをしていたがために発生していたことが分かった。なのでajaxが返ってくるまで待って、別のajaxを実行するようにしたら発生しなくなった。

今後は注意すること。

資産形成におすすめのFX口座はこちら。
http://s2fx.com/ranking/856.html

安全靴や作業着を買うならこちら。
http://azmaya.jp

jquery-ui 1.7.2 datepickerを同じページに複数表示したい場合、setDefaultsが便利だった件

同じページに複数datepickerを表示したかったんだけど、共通の設定を何度も書くのが嫌でどうすればよいか悩んだ挙句、setDefaultsを使えば良いことが分かった。

// 共通設定
$.datepicker.setDefaults({
    showOn: "both"
});

// 個別設定1
$("#date1").datepicker({
  minDate: new Date($("#min_date1").val())
});

// 個別設定2
$("#date2").datepicker({
  minDate: new Date($("#min_date2").val())
});

資産形成におすすめのFX口座はこちら。
http://s2fx.com/ranking/856.html

安全靴や作業着を買うならこちら。
http://azmaya.jp

cakephp1.2 スマホ判定

appController内でRequestHandler読み込んでbeforeFilterの中で以下のようにする。

<?php
// モバイル判定
if ($this->RequestHandler->isMobile()) {
    $this->view = 'theme';
    $this->theme = 'mobile';
}

こうするとviews/themed/mobile/controller/index.ctpみたいな感じでthemed/mobile内を自動で読み込み、ファイルがなければ通常のviews内を読み込む、という挙動になる。
ちなみにisMobile()はcake1.2だけあってUAが古かったりするので、以下の定数を定義することでisMobile()がそれを読み込んでくれる。ひとまず「Android|iPod|iPad」を追加しておく。

<?php
define('REQUEST_MOBILE_UA', '(Android|iPod|iPad|~後はデフォルト)');

資産形成におすすめのFX口座はこちら。
http://s2fx.com/ranking/856.html

cakephp キャッシュ周りがおかしい場合はキャッシュしないようにすること

モデルで少しトリッキーなことをしたらキャッシュが悪さをしてしまい機能によって動いたり動かなくなったりしてしまった。そういう場合はもうキャッシュ自体を無効にしてしまうことも検討すること。以下で無効にできる。

<?php
Configure::write('Cache.disable', true);

css display:inline-blockの便利さが分かりました

inline-blockすごい便利だった。今日やっと意味が分かった。

例えばspanとかのinline要素はwidthとか設定しても適用されないけど、かと言ってdivとか使うと改行されちゃうし困った、ってときにinline-blockを使うとwidthが適用されかつ改行もされないことが分かった。要はinput要素のような扱いになるっぽい。今までfloat使ってた部分もこれで代用できるケースもありそう。

今後は忘れないこと。