「F5」キーでの更新を除外

「F5」キーでの更新を除外

- TEAM 4 の投稿
返信数: 1

「F5」キーを長押ししてしまうと、ApacheのMaxClient数を超えてしまいApacheが動作しなくなる現象が発生しました。
これは、ページ更新時にDBデータの参照を伴うため負荷がかかり、セッションを解放する前に次のセッションが張られることが原因ではないかと推測しております。

この現象を回避するため、
./theme/base/layout
配下のfrontpage.phpとgeneral.phpに以下のJavaScriptを埋め込み「F5」キーを無効と致しました。
ご意見等ございましたら、共有していただけると幸いです。

■動作環境:Moodle2.2.3(Build:20120514)
■修正内容:
        <!-- JAVASCRIPT F5 DISABLE  -->
            <script language="JavaScript"><!--
            window.document.onkeydown = function (e)
            {
              //初期値判定
              if (e != undefined)
              {
                if (e.keyCode == 116)
                {
                  //イベント伝播の中止
                  e.stopPropagation();
                  e.preventDefault();
                  e.keyCode = null;
                  return false;
                }
              }else{
                if (event.keyCode == 116)
                {
                  event.keyCode = null;
                  return false;
                }
              }
            }
         --></script>

frontpage.phpでは47行目~、general.phpでは62行目~挿入しております。
「F5」キー以外の更新(ブラウザの更新ボタンなど)については、有効のままにしております。

以上、よろしくお願いいたします。

最大評点: お役立ち度: ★★★★★★★ (1)
TEAM 4 への返信

Re: 「F5」キーでの更新を除外

- TEAM 4 の投稿

本件ですが、別途簡単な方法がございましたので投稿致します。

設定ブロック→サイト管理→アピアランス→追加HTML→「HEADタグ内」
にJavaScript記述をすると全ページに適用されます。

ソースを直接修正していないため、リビジョンアップ・バージョンアップ等を適用しても影響がないと考えられます。

以上、よろしくお願い致します。

最大評点: お役立ち度: ★★★★★★★ (2)