do7be.exports

エッセンシャルガチ草トメィトゥ

夏場に1ヶ月間クーラーをつけっぱにしてみた

以前書いたとおりアクアリウムをやっており、夏場の心配事の一つに水温がありました。

家を出ている間にでも室温が30℃を超えてしまうと…なんと水温も30℃を超えてしまい帰宅したら全滅…なんてこともあるわけです。

そこで、家にいる間も出ている間も寝ている間も常にクーラーをつけてみました。

結果

先日、ついにドキドキの請求書が届いていました…

まずは参考までにクーラーを使っていない5月分の料金

3,050円

つづいて7月中旬~8月中旬の電気代

4,096円

なんと、1,000円程度しか増していませんでした!

ついでにちょっと寒くて何回かエアコンをつけただけの3月分

4,315円

なんと暖房とはいえほとんどつけた覚えのない月よりも安くあがりました!

節約のメソッド

まずは前提として部屋とエアコンのスペックですが、

  • 部屋
    • 軽量鉄骨アパート最上階
    • 太陽をもろに浴びる(エアコンないと外の気温よりあがる)
    • 7畳
  • エアコン
    • 10数年前製
    • 定格能力2.2kW
    • 定格消費電力450W
    • 室外機は日陰です。

そして以下のルールを守りました。

  • 28℃固定
  • 除湿自動モード
  • カーテンを締め切る

これだけです。ちなみに一度も電源を消していません。

まとめ

今までエアコンつけっぱだと電気代で殺されると思っていましたが、やってみると意外と安くて逆に驚いてしまいました。

夜も熱帯夜…なんて思いはしなくていいですが、28℃だと若干暑いため寝間着や掛け布団にはそれなりに気をつける必要がありました。

まあデメリットなんてこれくらいなんで、たかが1000円で夏場を快適に過ごせるのでオススメな感じです。

※部屋にもよると思うので自己責任でお願いしますw

画像がキャッシュされてjQuery.on('load')が効かない場合

画像のロードが既に終わっていて、再度同じ画像を含むDOMをappendしてloadイベントやerrorイベントハンドラを貼りたい場合、ブラウザでキャッシュされた画像が返されるとloadイベントが発火されない。

// 何度も下記処理が走る場合
const url = httpRequestHoge() // 何度も同じ画像が返ってくる可能性あり
imgTag = $(`<img src="#{url}">`)
$('body').append(imgTag)

imgTag
.on('load', function () {
  $(this).css('height', 0)
})

だとloadイベントが発火されない場合がある。

const url = httpRequestHoge()
imgTag = $('<img>') // ここではsrcに入れない
$('body').append(imgTag)

imgTag
.on('load', function () {
  $(this).css('height', 0)
})
.attr('src', url) // イベントハンドラを貼ってからsrc指定

loadはdocumentに存在しないDOMにはハンドラが貼れないらしいのでめんどい。

アクアリウム始めました

f:id:do7be:20160717230150j:plain

実は5月中旬から人生初のアクアリウムを始めていました。

さっき模様替えとかが終わったので写真に収めておきましたぞ。

立ち上げ

初めてだったのでいろいろ手間取りましたが、なんとか水槽台と水槽を立ち上げ。

f:id:do7be:20160717224746j:plain f:id:do7be:20160717224804j:plain f:id:do7be:20160717224811j:plain f:id:do7be:20160717224827j:plain

以下スペック。

現在の水槽の様子

f:id:do7be:20160717224916j:plain

f:id:do7be:20160717225509j:plainf:id:do7be:20160717225604j:plainf:id:do7be:20160717225651j:plainf:id:do7be:20160717225656j:plainf:id:do7be:20160717225659j:plainf:id:do7be:20160717225704j:plainf:id:do7be:20160717225718j:plainf:id:do7be:20160717225721j:plain

f:id:do7be:20160717233858p:plain

ソイルこぼれてたりウィローモストリミングできてなかったりでよくないですねー。

生体は

来週辺りコリドラス パンダも入れようかと。

赤虫あげてコリドラス軍団のモフモフを堪能したいですなあ。

f:id:do7be:20160717225735j:plain

jQuery .findでreflowが発生する

最近の業務ではフロントエンドの最適化もやっているのですが、そこで奇妙な現象に遭遇しました。

jQuery.findという、DOMツリーからセレクタに該当するDOM群のjQueryオブジェクト取得関数があるのですが、これでなぜか実行するたびにreflowが発生していました。

$('.hoge').find('.fuga:not(.piyo)')

このような状況です。jQuery 1.11でも3.0でも起きていました。これがscrollのたびに走っていると、インスペクタの.hogeが点滅し続けます。

いくつかのケースでreflowが発生するかどうか試してみましたが、どうやら.find:notを使用した時のみ発生するようです。

  • $('.hoge')
    • →しない
  • $('.hoge').find('.fuga')
    • →しない
  • $('.hoge').find('.fuga:not(.piyo)')
    • →する
  • $('.hoge').find(':not(.piyo)')
    • →する
  • $(':not(.piyo)')
    • →しない

実装を読んでないので.findでreflowが発生するのが腑に落ちないのですが、このようなケースでは.filterもしくは.notでさらに絞り込めばreflowが起きないので書き換えると良さそうです。