LoginSignup
7
8

More than 5 years have passed since last update.

【JavaScript】【解決】外部jsファイルから読み込みは</body>直前でも可能であり、ページの表示速度が早くなる。

Last updated at Posted at 2013-12-03

こんにちは。

まだまだ勉強中です。

ランダムで表示される、簡単な掛け算プログラムを作ろうとしていたところ
はたまた壁にぶち当たりました。

ほとんどsetIntervalで悩んだときと同じ。
http://qiita.com/g_lay_tomohiko/items/73cdc1c2151f7fdaf7d6

ただこれは deep_blue_ao さんに下記のご教授をいただき解決。

一番最初に書いていたコードは単純に
js nowTime() を呼んでいないだけではないでしょうか。
js setInterval("nowTime()",1000);を実行する位置が関数の外じゃないといつまでたっても呼ばれないと思います。

前回自身ではonloadでOKかと思っていましたが、枠外から呼び出すことで解決しました。

ただ今回、全く同じことをやっても解決しない・・・。
//かなり簡略化してます。

書いたコード

function newSet(){
     document.newForm.newNumber.value = Math.random(); 
}

newSet();
<body>
<form name="newForm">
<input type="text" size="2" name="newNumber"> 
<input type="button" value="書き換えた数字" onclick="myCheck()">
</form>

</body>

これだと初回アクセスした際に数値が表示されず。

でも

<body onload="newSet()">
<form name="newForm">
<input type="text" size="2" name="newNumber"> 
<input type="button" value="書き換えた数字" onclick="myCheck()">
</form>

</body>

Jsはそのままでonloadを使ったり、

<body onload="newSet()">
<form name="newForm">
<input type="text" size="2" name="newNumber"> 
<input type="button" value="書き換えた数字" onclick="myCheck()">
</form>

</body>
<body>
<form name="newForm">
<input type="text" size="2" name="newNumber"> 
<input type="button" value="書き換えた数字" onclick="myCheck()">
</form>
<script type="text/javascript">
<!--
newSet();
// -->
</script>
</body>

外部Jsを利用せず、HTML内にJavaScriptを記述すると
初回アクセスでも表示される。

このきちんと表示される後者2つは前回のsetInterval()と同じなのに
現在?が飛び交ってます。

日々勉強ですね。
ヒントやいいサイトなどあったらご教授いただけると幸いです。

それではこれからもよろしくお願いいたします。


追記:
解決しました。

外部jsファイルの読み込みは、

内だけじゃなくて、要素ないでも読み込み可能だったんですね。
直打ちのみ可能だと思ってました。

しかも棚ぼたで、

head内ではなく、/body直前に書くことで
hoge.js → hoge.html
ではなく、
hoge.html → hoge.js
と読み込むことになるので、
HTMLの表示速度も早くなる。

ストレスも少なくなりますね。
調べていると、jQeryでも解決方法はありそうなのでこれからが楽しみです。

sukobuto さん
ありがとうございます!

7
8
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8