• 締切済み

BODY内にJavaScript記述の方法、他

表示されてるhtmlを放置したままn時間置き、再度 最新表示の処理(ボタン)を行うと そのボタンのonclick()で読んでる関数が「定義されていない...」のエラーになってしまいます。 他の方にも、一定時間をあけた後にボタンを押すと、同様に「(関数が)定義されていない」エラーが出ると申告されました。 ●数時間放置して、再読み込みすると、ページエラー(関数未定義)など出るものなのでしょうか? ネットワークキャプチャーで調べてくれた方からは cgiレスポンスが無いときにGET要求している... といわれました。 GETは使っていないのですが、jsファイルを読み込むときにはGETになるとか。 その対処をする方法がわからず困っています。 で、処理の前に関数を定義すれば? 見たいに言われたのですが htmlソースのonclickの前に関数を定義? ってどうすればいいのでしょう? その関数は 画面から値(ボタンの前に設定してある<input type=text>)を取得し、 hiddenarea(FORM直下に設定)に、処理タイプや、取得した値などをセットし submitしています。 ページエラーになると、その後どうやっても動かなくなるので 動くように回避できる方法があれば、教えてください。 また、ボタンを押す前に関数を読み込むにはどうしたらいいのか 教えていただけないでしょうか? よろしくお願いします。

みんなの回答

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

このままだと回答が付かないと思うので 正直な話、状況がさっぱりなので回答のしようがないのよね まず状況を確認したいのだけど次のような理解でいいのかしら? 対象となる画面は ・外部のJavaScriptファイルを呼び出している ・画面内のtype=buttonがonClickイベントで外部JavaScriptファイル内に定義している関数を呼んでいる ってことでいいの? ところで ・最新表示の処理ってCtrl+RとかF5とかの処理のこと? ・n時間放置している人はその間いっさいブラウザ操作していない?それともいろいろしている? ・ブラウザ操作していなくてもブラウザキャッシュが削除されるようなことをしている? ・エラーが起きたとき、ブラウザの一時キャッシュにその外部JavaScriptファイルが存在している? 他にもかけることはいろいろかいてもらえると解決が早くなるかもね

jg1wjz
質問者

お礼

回答ありがとうございます。 その後の経過ですが、<head>内に記述していた<script・・・(外部フアイルの読込み)>を<body>内の最後に移動したことで解決できたようです。 通常のプログラミングだと、変数などは先に定義しておかないとアンデファになるので、<body>内の最後に移動したら、未定義になるんじゃないかと思ったし、<body>内に<script>の外部ファイル読込みを記述していいの? じゃあどう記述するの? という疑問があって解決できませんでした。 で、いろいろサイトを検索したところ記述例が載っていたので、それを試したところ、特に他の問題もなく、自分の環境では試せなかったのですが(再現しないので)、 結合試験でも発生しなくなりました。 今回の現象は社内LAN環境のレスポンスの遅延?!も影響しているように思いました。 JavaScriptの読込みでタイムアウトがあるかどうかは???ですが。 納品間近で、かなり焦りましたがとりあえず間に合ったようです。 askaaskaさん、アドバイス有難うございました!

jg1wjz
質問者

補足

うまく書けなくてすみません。 #対象となる画面は #・外部のJavaScriptファイルを呼び出している #・画面内のtype=buttonがonClickイベントで外部JavaScriptファイル内に定義している関数を呼んでいる #ってことでいいの? そのとおりです。 #・最新表示の処理ってCtrl+RとかF5とかの処理のこと? いいえ、作成したcgiアプリの処理になります。 onClickイベントで外部JavaScriptファイル内に定義している関数(*)で、 「表示処理」を識別できる値などをhiddenに設定してsubmit()しています。(POST) (*)→この関数が定義されていないとなってしまいます。 #・n時間放置している人はその間いっさいブラウザ操作していない?それともいろいろしている? 何も操作していません。画面を表示させたまま、放置しっぱなしです。 #・ブラウザ操作していなくてもブラウザキャッシュが削除されるようなことをしている? 何もしていないそうです。(そのパソコンを触っていない) #・エラーが起きたとき、ブラウザの一時キャッシュにその外部JavaScriptファイルが存在している? キャッシュはされていると思うのですが、 一時キャッシュの存在確認はどうすればいいのでしょうか? この事象が起こるのも全ての端末ではなく、 当然、私の試験した端末では発生したことがありません。(今までの5年間の間にも) ローカル環境だと発生しません。 発生するのはイントラネットの社内LAN環境のクライアントのようです。 よくわからないのですが、 あれからも試験を続けている中、エラーになるまでの時間が日々、長くなってきています。 今日は2時間大丈夫でした...とか、 こっちのパソコンでは出なくなりましたね...とか。 (最初は、ずっとその処理をする試験で、15分おきに発生する・・・と言われました) ???です。 これで伝わるか不安ですが よろしくお願いします。

関連するQ&A