with the flow

WEBプログラマを目指すWEBデザイナーが書き綴る開発日誌のようなもの

iPhone4S予約した

近くのSoftBankショップでiPhone4Sの予約してきました。

孫さん自身「ムチャクチャ」と言っていた3G/3GSの割賦残り分を実質無料にするキャンペーンの対象者に見事に当てはまっていたため。
※キャンペーンは10/14からと書いてありますが、当然それ以前の予約分もキャンペーン対象。


早い話が、「残りの割賦分はチャラにするけど、そのかわりまた2年使ってね!KDDIには行かないでね!」キャンペーンですね。
auからも出たけど、データ通信速度がSBよりも落ちること、電話がかかってきたらデータ通信が中断されることなど、いろいろとau不利の情報があって、別に電波に困ってないし電話もしないし月額も安いから、という理由でまんまとSBのキャンペーンに釣られました。はい。


さすがにiPad2が無料で手に入ると一見錯覚させられた「リンゴ割」には釣られなかったけど。
※実際このキャンペーンは本体の分割支払金には適用されないので、最低でも2000円近くは月額かかるってことですね。まあ、Wi-Fiだけしか使わない人にはいいのかも。


量販店のほうが良いのかも調べてみたけど、ヨ◯バシとかは、10/8現在、一括購入でもポイントがつくかどうかはまだわからないらしい(発売までには決めるとの情報あり)ので、分割購入がデフォルトの私はそもそも関係なし。
※10/9 追記:10/8 アキバの一部専門店では、機種変でも1000円キャッシュバック!とか、お店の公式アカウントをフォローするとQUOカードが!とかやってたみたいです。まあ微々たるもんですが。

※10/16追記:ヨ◯バシはauもソフトバンクも一括購入でポイント5%らしいとのこと。

「明日以降iPhone4Sの予約する!auで!」って方は、au版のiPhone取り扱いは比較的大きな店舗でしかやっていないこと、予約にはクレカが必須なので、auのiPhoneを購入予定で現金払い主義という場合は予約できない or その場でお店のクレジットカードを作るハメになる点にご注意を。

jQueryでのDOM操作にはfilter()が便利ということに今更気づいた

お世話になることの多いNETTUTSで、jQueryのDOM検索効率化を上げるためのTipsが紹介されてました。
Quick Tip – jQuery Newbs: Stop Jumping in the Pool


内容はすっごく基本的なことなのだけど、
filter()の便利な使い方について言及されてたので自分用メモ。


基本的なjQueryのDOMの検索の書き方のお作法について。
曰く、「DOMはプールと心得よ!」とのこと。。


要は、「$(".target")とかをキャッシュせずに至る所に書いちゃうと、その度、プールに落ちた小さなコインを見つけるために飛び込ませているのと同じ事になるよ。これって無駄だよねぇ。。」と。


ajaxで中身を入れ替えるコンテンツなんかでは、入れ替えたあとに再キャッシュ、またはlive()などを使うなどの一部例外はありますが、この例え方はなるほどーって思いました。


最も、そんな非情なコードを書いても、最近のブラウザは早いのでそれを体感ではほぼわからないレベルにしてくれていますが(例の青いブラウザは除く)。


でも、速度のためというより、純粋に後の自分のために、わかりやすいコードで書いたほうが幸せになれるよねって考え方には共感できます。


で、そんなことを思いながらぼーっと記事を見てたのですが、最後のほうで、あれっ?て思う方法が紹介されてました。



クリーン化前

var tabs = $('.tabs li');
 
tabs.click(function() {
   var tab = $(this);
   tabs.removeClass('active');
   tab.addClass('active')
     .load('someHref', function() {} );
});


クリーン化後

var tabs = $('.tabs li');
 
tabs.click(function() {
   tabs.removeClass('active')
       .filter(this)
       .addClass('active')
       .load('someHref', function() {} );
});


...ですよね。.filter()で絞ったほうがいいですよねーーー。

キャッシュしておいた$('.tabs li')の中から、clickイベントが発生したliだけをfilter()で返してもらえば、クリックした要素をいちいち"var tab = $(this);"とキャッシュしなくていいという事ですね。

実際使用するときは、".tabs"はあくまでスタイル用にして、IDも別に"#navTabs"とか付けて、var tabs = $("#navTabs").find("li") にしたら、より高速化が図れますね。

ってかこういうのは基礎だろと自分に突っ込みつつ。