5月 2013年

ASP.NET MVC3 で ブラウザ キャッシュ を 無効化 する アクションフィルター

特定の処理だけ キャッシュ を 無効化 したいけれど、いちいち、そんな処理を書いているのが面倒… という思いから、お手軽に キャッシュ の 無効化 を実現する方法を作ってみました。 無効化する作業としては、以下のソースコードにある NoCacheAttribute をキャッシュさせたくない操作(メソッド)の属性に設定するだけです。 ソースコード 説明 使用例 ソースコード キャッシュ を 無効化する 属性 NoCacheAttribute のサンプルコードを以下に記載します。 NoCacheAttribute.cs namespace SampleMvcApplication.Controllers { using System; using System.Collections.Generic; using ...

HTTP通信 の キャッシュ 無効化

<!-- .menu { border: 1px solid silver; padding: 1em 2em; } --> WEBアプリケーション 構築 をしていると、データ更新したはずなのに ブラウザ に反映されない!! ってときがあるかと思います。 ここでは、「新しい情報が取得できない」問題に対する HTTP通信 キャッシュ の 無効化 方法を幾通りか載せます。 状況に応じてどれか、または、いくつかを選択して キャッシュ を 無効化 してください。 静的コンテンツ HTML の METAタグ に書く HTTP サーバー の設定を変える(IIS) リクエスト に 無意味な文字列を付加する 動的コンテンツ サーバー処理に書く(C# & ASP.NET MVC) リクエスト に 無意味な文字列を付加す ...

HTTP キャッシュ の 良い点 と 問題点 および 対策

.quote { padding: 0.5em 1.5em; border: 1px solid silver; } キャッシュ無効化 はすぐにやってしまいがちですが…キャッシュも正しく使いこなせばとても便利な機能だと思います。 正しく使いこなせていないから問題になるのであって、その原因をつきとめ改善できればより良いサービスが構築できる ハズ と個人的には思っています。 良い点 通信回数が減るので、サーバーへの負荷が減る 通信量が減るので、ネットワーク帯域を効率的に利用できる 通信効率が良くなるので、クライアントの応答が早くなる 悪い点(正しく使わないと発生する問題) 新しい情報に書き換わらない 見られてはいけない情報が見えてしまう 思うようにキャッシュの良さを享受できない 問題点を改めて述 ...

キャッシュ に関係する HTTP ヘッダー

.table { border-collapse: collapse; border: 1px solid silver; } .table th { border: 1px solid silver; background-color: #efefef; text-align: center; padding: 0.3em 0.5em; } .table td { border: 1px solid silver; padding: 0.3em 0.5em; } HTTP ヘッダー の規約のうち、キャッシュに関するもののみを取り上げています。 これらの ヘッダー を正しく扱うことができれば…いろいろと幸せになれる ハズ !! ここで取り上げているのは HTTP通信 時のヘッダーなので、 Ajax のような ...

IE の デフォルト機能 を 禁止 する

業務アプリを開発していると良く遭遇するこの問題…。 基本的には HTML のトップレベルで対応することで対策が無難と思います。 いわゆるホワイトリスト方式(基本は拒否。許可するものだけリストアップ。)です。 禁止したい機能は以下のようなものを想定しています。 テキスト選択 右クリックメニュー(コンテキストメニュー) Ctrl を押しながら マウスホイール テキスト、ファイルのドラッグ & ドロップ サンプルコード with jQuery <html> <head> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script type="text ...

jQuery で クリック と ダブルクリック を 判別実行する プラグイン

.table { width: 100%; border: 1px solid silber; border-collapse: collapse; margin: 0.5em 0; } .table th { border: 1px solid silver; padding: 0.3em 1em; } .table td { border: 1px solid silver; vertical-align: top; padding: 0.3em 1em; } jQuery で クリック と ダブルクリック を別実行する プラグイン を作成しました。 通常 ダブルクリック すると、クリック 2回 と ダブルクリック が発生してうまく扱えません。 このプラグインを利用することで、クリック と ダブルクリック に対して別の処理を割り当てるこ ...

マークダウン記法 まとめ

.list_tilte { display: inline-block; width: 8em; height: 1em; } .table { width: 100%; border: 1px solid silver; border-collapse: collapse; } .table th { width: 50%; border: 1px solid silver; padding: 0.2em 0.5em; } .table td { width: 50%; border: 1px solid silver; padding: 0.2em 0.5em; } マークダウン記法 の記載例とその表示例を一覧にしてまとめます。 マークダウン記法は簡単なので、普通のテキス ...

IE の 右クリック メニュー 拡張

.table { width: 100%; border: 1px solid silver; border-collapse: collapse; } .table thead { font-weight: bold; background-color: #efefef; } .table tbody { } .table th, .table td { border: 1px solid silver; border-collapse: collapse; padding: 0.5em 1em; } .indent { margin-left: 2em; } IE の 右クリック メニュー(コンテキストメニュー) に独自項目を追加、実装するチュートリアルです。 コンテキストメニュー項目はレジストリ ...

IE で メモリ を 強制的 に 解放

メモリーリークに近い話とは思いますが、ちょっと毛色の違う内容です。 「JavaScript がメモリーを馬鹿食いしてどうしようもない…」 「なぜかメモリーが確保されっぱなしなんだけど…?」 といった状況の解消法。 JavaScript にはガーベッジコレクタがあるから大丈夫… と、思われがちですが、ガーベッジコレクタは『本当にメモリ解放が必要になるまで何もしない』というものです。 (状況が悪いとガーベッジコレクタは何もしてくれなくて、ブラウザが固まってしまいます。。) 「コストはかかるが、信用できないならプログラマが勝手にやってしまえ!!」という感じです。

IE の メモリリーク不具合 まとめ (サンプルコード)

元ネタは こちら をご参照ください。 IE8 における JavaScript でメモリーリークを起こすコードパターンです。 ここにあげているパターンはすべてパッチリリース済みなので、パッチをあてれば解消できます。 逆に、パッチがあてられない場合、絶対書いてはいけないコードです。 innerHTML プロパティを頻繁に書き換える frameset 要素を使う window.open した先のウィンドウ内で循環参照を含む iframe 要素を使う window.createPopup した先のウィンドウ内で window.createStyleSheet を使う 循環参照があるスクリプトで、onload、onerror、onunload イベントハンドラーを接続する iframe から モーダルダイアログ を開いて、iframe を閉じる innerHTML プロパティ ...

jasmine 日本語 API リファレンス (jasmine.Spy)

.post-body .header .title { color: #3F529C; font-size: 2em; } .separator1 { height: 2em; line-height: 2em; border-top: 1px solid silver; border-bottom: 1px solid silver; border-left: 3px solid silver; border-right: 3px solid silver; margin: 2em 0; } .separator1 .title { font-weight: bold; font-size: 1.8em; padding: 0 1em; } .separator2 { height: 2em; line-height: 2e ...

jQuery で ブラウザ、バージョン、プラットフォーム を判別する プラグイン

jQuery で閲覧ブラウザ、バージョン、プラットフォーム を判別する プラグイン を作成しました。 jQuery 1.9 から browser のサポートがなくなるので、その対応用プラグインです。 タブレットと携帯電話(モバイル)の判別も行えます。 window.navigation.userAgent 文字列を利用します。 文字列をせっせと解析して、各フラグを立てて回ります。 jquery.depend プラグイン ダウンロード V1.1.8 圧縮版, リリース向け jquery.depend-1.1.8.min.js 非圧縮版, 開発向け jquery.depend-1.1.8.js ZIPファイル (ソース一式) 旧バージョン ...