MW211 EXIT

devlog
(無題)
2012年05月05日
It is a memorial day today.
メモ帳の文字コード
2012年05月03日
メモ帳ではあまり文字コードを意識することがない。
たいていのエディタでは編集中に現在使用中の文字コードを表示しているものだが
メモ帳の場合、これがないからかもしれない。

ということで、あらためて、メモ帳における文字コードのおさらい。

まず、メモ帳において使用できる文字コードは以下の3つ。
  ・ANSI(=Windows版Shift_JIS=CP932)
  ・UTF-8
  ・Unicode(=UTF-16)
つまり「EUC-JP」は使用できない。

文字コードを自発的に指定したい場合は、以下の2つの方法がある。
  ・ファイルを開く時に、指定する
  ・ファイルを保存する時に、指定する
つまり、編集中に変更はできない(一発で変換して再表示ってことはできない)。

文書ファイルのダブルクリックや
メモ帳に対するドラッグ&ドロップでファイルを開いたりする場合
文字コードをある程度自動認識してくれる。
この使い方をすることが多いと思うので、文字コードを意識しづらい。

自動認識の基準は(先頭の)「BOM」のようだ。
UTF-8、UTF-16で保存した場合は、自動で「BOM」を付加する。


ついでに別件だが、改行コードは「CR+LF」のみを認識し、
「CR」や「LF」だけだと改行として認識しない。

メモ帳の特徴といったらこんなところか。
分類:文字コード
CSS/CSSのセレクタまとめ
2012年05月02日
┌──┬───────────┬───────────────────────┐
│    │*                     │すべて                                        │
├──┼───────────┼───────────────────────┤
│    │.クラス               │クラス                                        │
├──┼───────────┼───────────────────────┤
│    │#ID                   │ID                                            │
├──┼───────────┼───────────────────────┤
│    │先祖 自身             │子孫                                          │
├──┼───────────┼───────────────────────┤
│    │親 > 自身             │子(直子)                                      │
├──┼───────────┼───────────────────────┤
│    │隣 + 自身             │隣接している要素                              │
├──┼───────────┼───────────────────────┤
│CSS3│前 ~ 自身             │後にある要素                                  │
├──┼───────────┼───────────────────────┤
│    │:first-letter         │最初に現れる文字だけ                          │
├──┼───────────┼───────────────────────┤
│    │:first-line           │最初の行だけ                                  │
├──┼───────────┼───────────────────────┤
│    │:first-child          │最初に現れる要素だけ                          │
├──┼───────────┼───────────────────────┤
│CSS3│:nth-of-type(■)      │■番目に現れる要素                            │
├──┼───────────┼───────────────────────┤
│CSS3│:nth-last-of-type(■) │後ろから■番目に現れる要素                    │
├──┼───────────┼───────────────────────┤
│    │:hover                │マウスがのっている場合                        │
├──┼───────────┼───────────────────────┤
│CSS3│:not                  │否定                                          │
├──┼───────────┼───────────────────────┤
│CSS3│:checked              │チェックされている場合                        │
├──┼───────────┼───────────────────────┤
│    │タグ[属性]            │属性を持つ                                    │
├──┼───────────┼───────────────────────┤
│    │タグ[属性="値"]       │特定の属性値を持つ                            │
├──┼───────────┼───────────────────────┤
│CSS3│タグ[属性^="値"]      │特定の属性値を持つ(先頭から部分一致)          │
├──┼───────────┼───────────────────────┤
│CSS3│タグ[属性$="値"]      │特定の属性値を持つ(末尾から部分一致)          │
├──┼───────────┼───────────────────────┤
│CSS3│タグ[属性*="値"]      │特定の属性値を持つ(部分一致)                  │
└──┴───────────┴───────────────────────┘
  ※CSS3はIEで動作しないものがあるので注意
分類:CSS
PHP/TRUEとFALSEの出力
2012年05月01日
TRUEとFALSEを出力した結果は以下のとおり。
┌─────┬──────┬──────┐
│          │    TRUE    │   FALSE    │
├─────┼──────┼──────┤
│echo      │     1      │            │
├─────┼──────┼──────┤
│print_r() │     1      │            │
├─────┼──────┼──────┤
│var_dump()│ bool(true) │bool(false) │
└─────┴──────┴──────┘
分類:PHP
JavaScript/変更を反映させる
2012年04月30日
JavaScriptのソースコードを変更しても、
既に動作中のユーザがブラウザに前の状態をキャッシュし続けて反映されない、
という問題に出くわした場合の対処方法の一例。

┌──────────────────────────────────────┐
│<script type="text/javascript" src="javascript.js?1.0"></script>            │
└──────────────────────────────────────┘
上記のように「?バージョン」みたいなパラメータを付加しておいて、
ここの値を変えてあげれば再読込してくてる。
#この方法は、HTMLソース(テンプレート)の変更が必要ってことになる
分類:JavaScript
PHP/セッションのまとめ
2012年04月28日
┌─────────┬────────────────────────────┐
│クッキー          │ブラウザ側(クライアント側)に記録される情報              │
│                  │有効期限を設定できるが、たいていはブラウザを閉じたら消滅│
│                  │セッション情報についてはIDのみを記録する                │
│                  │※ブラウザ側にあるものなので、詳細な情報を記録すると    │
│                  │  容易に改竄されてしまうおそれがある                    │
├─────────┼────────────────────────────┤
│セッションファイル│サーバ側に記録される情報                                │
│                  │セッション情報の中身を記録している                      │
│                  │※ファイルを開くと「;」区切形式で容易に内容を確認できる │
│                  │正規の手続きとしては「session_destory()」で削除するが、 │
│                  │その処理が漏れた場合(ブラウザの直接終了など)を考慮し    │
│                  │「php.ini」の設定により、一定の間隔で削除する           │
├─────────┼────────────────────────────┤
│セッションID      │クッキーとセッションファイルを結びつけるID              │
│                  │「session_start()」で生成もしくは使用される             │
└─────────┴────────────────────────────┘
・「session_start()」した場合
  クッキー中からセッションIDを探す
  ・セッションIDがある場合
    そのセッションIDと対応するセッションファイル(セッション情報)を使用する
  ・セッションIDがない場合
    セッションIDを生成し、それに対応するセッションファイルを生成するとともに
    クッキーにセッションIDを記録する
・「session_destory()」した場合
  ・セッションファイルを削除する
────────────────────────────────────────
Q.セッションIDおよびセッションファイル生成後、
    セッションファイルを直接削除したらどうなる?
    #「php.ini」の設定による一定の間隔での削除もこれと同等のはず
A.セッションファイルがない場合、
    別のセッションIDおよびセッションファイルを生成します
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Q.ブラウザを一旦閉じて、「session_start()」し直した場合はどうなる?
A.「session_destory()」を行わないと、セッションファイルは残ったままだが
    クッキー側にそれに対応するセッションIDが記録されていないので、
    別のセッションファイルが生成される
    ただし一部のブラウザ(IE)では、見た目上ブラウザが終了したように見えても
    プロセスとして残り続けている場合があり、
    引き続き同一セッションファイルを継続使用するケースがあるので注意
    →ブラウザを終了させず、タブだけを終了させた場合と同様
────────────────────────────────────────
分類:PHP
InterneteExplorer/submitボタンの配置注意
2012年04月27日
IE(IE9)の場合、form中にカーソルがあると、カーソルあるところと共に
そのformに属するsubmitボタンが強調される。
  ・カーソルのあるところ                          →外太枠&内点線枠
  ・カーソルのあるところが属するformのsubmitボタン→外太枠
また、これ(submitボタン)が複数あった場合は、最初のボタンが強調される。

きっと、submitする時はここを押してねっていう
アピールかなんだろうけどなんか余計な感じだ。

CSSとかで回避する方法は今のところわからないが、
submitボタンを、buttonボタンにして、
JavaScript側でsubmit()することで回避することはできる。
#但し、この場合、送信されていたsubmitボタンのラベル名が
  (buttonボタンのラベル名としては)送信されなくなるので注意。
  別途hidden属性かなんかで代替する必要あり

submitボタンだろうが、buttonボタンだろうが、JavaScriptで制御するから
どっちでもいい、なんて適当に配置していると、
IEの場合にボロが出る(不自然な位置の第一submitボタンが強調される)という
結構危険な問題だ(初期設計時に心得ておいた方がよい)。
分類:ブラウザ、HTML
画面をリフレッシュする方法
2012年04月26日
いろいろある。

【1】メタタグを使う方法
┌──────────────────────────────────────┐
│<meta http-equiv="Refresh" content="秒"/>                                   │
└──────────────────────────────────────┘

【2】JavaScriptを使う方法
┌──────────────────────────────────────┐
│<script type="text/javascript">                                             │
│  window.onload = function() {                                              │
│    setTimeout("location.reload()", ミリ秒);                                │
│  }                                                                         │
│</script>                                                                   │
└──────────────────────────────────────┘
分類:JavaScript、HTML
IEのバグ
2012年04月25日
IE8で、文字サイズを「最大」にしてから「中」に戻すと、
ファイルアップロード用のボタン名が大きいまま元に戻らない。
#普通のボタンでは起こらない、ファイルアップロード用ボタンのみの問題

IE9ではなおっている
分類:ブラウザ
ブラウザ/戻るボタンの挙動
2012年04月23日
┌──────────────────────────────────────┐
│<meta http-equiv="Pragma"        content="no-cache"/>                       │
│<meta http-equiv="Cache-Control" content="no-cache"/>                       │
│<meta http-equiv="Expires"       content="0"/>                              │
└──────────────────────────────────────┘
上記をHTMLヘッダ部(メタ部)に記述すると、ブラウザの戻るボタンで
一度表示済みの画面へ戻っても再読込してくれて最新の情報を取得してくれる。
#ま、逆にいえば、キャッシュを読んだ方が速いって話でもあるんだけど

ただし、Safariではこれは効かないようだ。
#ついでにIEでは、容量が小さい(32KB未満)と効かないようだ(効かなかった?)

さてそれはさておき、Chromeではこれらと趣が一風異なる。

なんと別途、入力欄に入力中の文字列を記憶しており、
再読込してくれて最新の情報を取得してくれた挙げ句、
以前に入力していた内容を上書してくれるのだ。

しかも、厄介なのは、name属性が配列で添字がない(例:name="id[]")と、
前詰めで復元されてしまうのだ。
つまり、三行目当たりに入力していたのに、戻ったら一行目に移動してたりするのだ。
しかも、元々一行目に値があったら上書きされてしまっているのだ。

まとめるとこんな感じ。
┌────────┬─────────┬─────────┐
│                │ 最新の情報を取得 │入力中だった内容を│
├────────┼─────────┼─────────┤
│InternetExplorer│       する       │    クリアする    │
├────────┼─────────┼─────────┤
│Firefox         │       する       │    クリアする    │
├────────┼─────────┼─────────┤
│Chrome          │       する       │     復元する     │
├────────┼─────────┼─────────┤
│Safari          │      しない      │   クリアしない   │
└────────┴─────────┴─────────┘
分類:ブラウザ
前へ 1 … 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 … 156 次へ