disableを使った二度押し防止

タグ:

昔、「Javascriptでボタンのダブルクリックを抑制する」という記事でも書いたんですが、これを書いたのが今から5年前ぐらいの情報でして、ちょっと前にはてブで同じような記事があったので、ブックマークしていました。

で、最近(とはいっても数年前)はどうやってるのかみてみると、ボタンをdisableにして押せなくしてるみたいですね。どんなもんかということで試してみました。

参考:二度押し防止の onsubmit で disable にするやつ by Drk7jpさん

このページのはじめに載ってた方法だと、prototype1.6.jsでは戻ったときとかにボタンが押せなくなってしまっていたので、「onsubmit で disable にするやつ by 鷹の島さん」の方法を使いました。

テストで使ったJSPは以下。あんまりよくなさそうだけど、時間稼ぐために頭に3秒Sleepしてます。

<%
    String countString = request.getParameter("count");
    int count = 0;
    try{
        count = Integer.parseInt(countString);
        count++;
    }catch(Exception e){
        count = 1;
    }
%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<script type="text/javascript" src="./utility.js"></script>
<script type="text/javascript" src="./prototype-1.6.0.2.js"></script>
</head>
<body>
<form action="index.jsp" method="GET">
<input type="text" name="string" value="" />
<input type="hidden" name="count" value="<%=count%>" />
<input type="submit" name="subsub" value="OK" />
</form>

<p>
string=<%= request.getParameter("string") %><br />
count=<%=count%><br />
subsub=<%= request.getParameter("subsub") %>
</p>
</body>
</html>

たしかにこれだと、うまくいくのですが、1秒後にdisableが戻るのがなんか気持ち悪い。これはAPサーバにリクエストを投げるときに、1秒以上かからない前提でやってるのかなー。

参考

Objective‐Cを使わなくてもWebアプリケーション開発の標準技術でiPhoneアプリケーションを開発できる。パソコン向けWebアプリケーションをスタート... 続き
「JavaScriptは言わばひとかたまりの大理石であり、私はその中からこの言語のすばらしい本質が現れるまで、美しくない機能を取り除いていく。最終的に私が削り出... 続き
言語解説部分とリファレンス部分に分け、その言語解説部分をまとめたもの。第5版では、全章の内容を更新し、XMLHTTPRequestオブジェクトでスクリプトからH... 続き
最新の仕様とブラウザに合わせてバージョンアップ。コンテンツの構造を示す「HTML」、表示方法を設定する「CSS」、インタラクティブな機能を追加する「JavaSc... 続き
膨大な数の命令をサンプルとあわせて解説。機能別にすぐ引けます!Web2.0を支えるJavaScriptを詳細解説。AjaxやDOM Scriptingで必要とな... 続き

コメントする


画像の中に見える文字を入力してください。

Mike Cohn (著), マイク コーン (著), 安井 力 (翻訳), 角谷 信太郎 (翻訳)
採用した現在のタイトルは、見積りや計画づくりといったプロセスを、アジャイルに進めなければならないと謳っているのだ。見積りと計画づくりがアジャイルでないのに、プロジェクトがアジャイルであるということはありえない。

メアリー・ポッペンディーク (著), トム・ポッペンディーク (著), 高嶋 優子 (翻訳), 天野 勝 (翻訳), 平鍋 健児 (翻訳) 「トヨタ生産方式」を源流にする「リーン開発」をソフトウエア開発に取り入れるための具体的方法を紹介した本です。製造分野から始まったリーン活動は、その原則を理解しないままプラクティスだけを開発分野に適用しようとしても、行き詰るか失敗に終わってしまいます。本書は、リーンの7大原則を「価値」「ムダ」「スピード」「人」「知識」「品質」「パートナー」に整理し、ソフト開発現場にどうしたら効果的に適用できるかを、多くの実例を交えながら具体的に説明します。

著者:Yugui 税込 2,310 円
本書は、他言語でのプログラミング経験を持つ人を対象に、Rubyの特徴、Rubyならではの方法や慣習について解説します。これはRubyの資料を読んで実践的な学習を進めていくために必要な前提知識です。本書はRubyの基礎的な部分とメタクラスやブロック構文のような独自の概念、それらにまつわる文化を説明し、Ruby特有の考え方を知ってもらうことを目的としています。

本書は、Railsの入門からリファレンスまでをわかりやすく解説した書籍です。第1部と第2部では、Railsの背景にある概念について説明し、あっという間に簡単なオンラインストアを開発してみせます。

著者:James Shore, Shane Warden アジャイル開発は人のなせる技である。アジャイル開発を極めるためには、その時々で無数の可能性を評価して最善の方策を選択することを学ぶ必要がある。本書は、あなたがアジャイル開発の「道」を極める手助けをしたい。

daipresents!! ҂̑蕨

tWn{github tWn{Google Code