javascriptのみですが、送信時に選択されたチェックボックスを保持するフォームを使用して、純粋なHtmlページ(php、asp、サーバー側なし)を構築することは可能ですか?
より具体的には、一部のチェックボックスがクリックされたときに (Excel が数式の計算を行うように) リアルタイムで更新されるテーブルを作成する必要があります。ページを更新するたびに (フォーム送信アクション)、javascript 変数がリセットされるため、チェックボックスの状態を保存する方法が見つかりません。
javascriptのみですが、送信時に選択されたチェックボックスを保持するフォームを使用して、純粋なHtmlページ(php、asp、サーバー側なし)を構築することは可能ですか?
より具体的には、一部のチェックボックスがクリックされたときに (Excel が数式の計算を行うように) リアルタイムで更新されるテーブルを作成する必要があります。ページを更新するたびに (フォーム送信アクション)、javascript 変数がリセットされるため、チェックボックスの状態を保存する方法が見つかりません。
あなたのソリューションに対する想定される答えは localStorage() です...
これは Javascript に依存しており、完全な解決策ではありませんが、HTML5 の localStorageを使用すると、ユーザーのコンピューターに設定を保存できます。
まず、localStorage() のサポートを検出します。
if (Modernizr.localstorage) { // with Modernizr
if (typeof(localStorage) != 'undefined' ) { // Without Modernizr
次に、サポートされている場合はパラメーターを設定します。
localStorage.setItem("somePreference", "Some Value");
ユーザーがローカルストレージをクリアしていない限り、後でそれを取得します。
var somePreference = localStorage.getItem("somePreference");
クリアしたいときは、次を使用してください:
localStorage.removeItem("somePreference");
サポートされていない (古い) ブラウザーを使用している場合は、[ローカル ストレージ ハック][2] を使用して Flash LSO を悪用できますが、それらは明らかに理想的ではありません。
セッションやクッキーはどうですか?
これらは両方とも、意図的に一時的な保管形態です。Flash LSO でさえ、長期保存には Cookie よりも優れています。
ブラウザ内でローカルに保存します。ユーザーがキャッシュとローカル ストレージをクリアすると、すべてが失われます。
これらはサーバー側であるため、セッションを使用することはできません。ただし、Cookie を使用してデータを保存/取得することはできます。ここを参照してください。
HTML5 のプッシュ状態イベントを使用して URL を変更できます。変更が必要なすべてのイベントに「GET request style」パラメーターを追加します。
<script type="text/javascript">
var stateObj = { foo: "bar" };
function change_my_url()
{
history.pushState(stateObj, "page 2", "bar.html");
}
var link = node.getElementByID('click');
link.addEventListener('click', change_my_url, false);
</script>
<a href="#" id='click'>Click to change url to bar.html</a>
個人的には、HTML5 ローカル ストレージを使用します。ただし、覚えておいてください - ユーザーがキャッシュで遊んでいる場合、ユーザーが正確なデータを持っているとは言えません。ミッションクリティカルなものについては、サーバー側の言語を使用する必要があります (それが目的です)。
便利なリンク: