アプリ版:「スタンプのみでお礼する」機能のリリースについて

スプリクトを外部ファイルから読み込ませる件で質問です。例えば、indexとsub1の2ページから成る、HPのフォルダとしまして、indexを、メインの動かしたいページ、sub1を、スクリプトを、保管する為だけのページとします、このとき、下記のタグは、どちらのページに記述するのでしょうか?あと、ファイル名とありますが、これには、どちらのファイル名を記述するのでしょうか?

<script language="JavaScript" src="ファイル名.js"></script>

もし、SUB1であれば、単純に、
<script language="JavaScript" src="SUB1.js"></script>
という風に記述すればいいのでしょうか?
あと、ファイルのタグを、.js にする必要があるということですが、これも、どちらのファイルの方を、変更すればいいのでしょうか?たとえば、sub1.htm を sub1.js という風に単純に変更すればいいのでしょうか?
あと、そもそも、今回お聞きした理由に一つに、スプリクトを、1ページ内にたくさん記述しすぎたのか、開く途中で、停止してしまうのです、ただ、遅いだけならいいのですが、停止したので、これの解決策として、今回お聞きしている、スプリクトを外部ファイルから読み込ませる、という行為が効力があるのかということもあわせてお聞きしたいのです。(依然の質問と、ダブルことをお許しください。)

A 回答 (3件)

基本的に、スクリプトの量が多いために動作が停止するということはあまり考えられないと思います。

もしスクリプトの処理が多すぎて動作が停止するとしたら、ブラウザが落ちる可能性が高いのではないでしょうか。
スクリプトの量については、外部スクリプトに切り分けたとしても大差ないでしょう。 スクリプトが処理される限りは、すべてのスクリプトが読み出されますし、そうなればどのファイルにスクリプトが記述されていても同じ事と思います。
また、スクリプトの内容として、スクロールをさせるスクリプトがあるようですが、これはページロードが終了してからでないと動作しないと思います。 このスクリプトを動かすのに、< body onLoad="***">のような記述を使っていませんか? だとしたら、すべてのスクリプトは、その量にかかわらずすべて読み出されてから動作を始めているはずですので、そこに含まれるスクリプトの量が、動作に影響を及ぼすということはないと思いますよ。

スクリプトの動作が停止してしまうのは、他のスクリプトの動作が干渉しているせいではないでしょうか。 一定時間ごとに処理を繰り返すスクリプトを複数、独立して起動させるようなケースでは、それぞれのスクリプトの動作ごとに経過時間の管理や処理を別々に行うので、処理が重くなることがあると思います。
あるいは、関数ごとに使っている変数が重複していたりすると、思いもよらないような動作をすることがあります。
また、条件分岐の条件設定などが間違っていたりすることはないでしょうか。
いずれにしても、スクリプトそのものを見直してやらないと、動作が停止してしまう問題点は解消できないと思います。 外部スクリプトファイルに置き換えても、処理内容も動作も変化はないのではないでしょうか。

できれば、スクリプトの内容を提示していただいたほうが、解決が早いと思いますよ。

参考になれば幸いです。
    • good
    • 0

>ページ内にたくさん記述しすぎたのか、開く途中で、停止してしまうのです


どのくらい長いかしりませんがおそらく関係ない?
    • good
    • 0

おはようございます。



index.htm→メインページ
sub1.htm→JSを記述してあるページ

にしたいのですね。その場合、
<script language="JavaScript" src="ファイル名.js"></script>
は、index.htmに記述します。
※これは、「JSを記述したファイルをこのページに呼び出します」と言う意味のタグなのです。ですので、この「呼び出して実行したい」と言う命令文をJSプログラムの記述してあるページに書いても仕方ないと言う意味は判りますか(このように「こんなもんなんだ」と言う覚え方ではなく、意味を持って覚えれば今後判らなくなってしまうと言う事が無くなりますので、今回を機に「意味で」覚えた方が宜しいですよ)?

で、index.htmにJSファイルを呼び出すタグを挿入しましたら、今度はJSプログラムを記述してあるファイルを「○○.js」に拡張子を変更します(今回はsub1.jsになりますね)。
で、そのsub1.js内のJS記述方法は

通常htmlページ内に記述する場合、例えば

<script LANGUAGE="JavaScript">
<!--
function pop_win01(){
win=window.open("○○.htm","window1","width=100,height=100,scrollbars=no,location=no,menubar=no,left=0,top=0");
win.moveTo(0,0);
}
// -->
</script>
となりますが、外部に出した場合はこの上下4行は必要有りません。

外部に出す場合、そのままダイレクトに

function pop_win01(){
win=window.open("○○.htm","window1","width=100,height=100,scrollbars=no,location=no,menubar=no,left=0,top=0");
win.moveTo(0,0);
}

などと記述します。勿論htmlのタグなどの記述はしてはいけません。あくまでも「JSファイル」なのですから、JSに関する命令文のみを記述します。

>スプリクトを、1ページ内にたくさん記述しすぎたのか、開く途中で、停止してしまうのです、ただ、遅いだけならいいのですが、停止したので

これは、長すぎるのではなくて、どこかにミスがあるのではないでしょうか?外部に出す際、いらないものを入れてしまったか、必要な部分を消してしまったか、またはJSがぶつかってしまっている所為でエラーが起こっているか…。

ちなみに、外部に出す際は、「それぞれの命令別にJSファイルを作成し、それぞれ呼び出す」ことをお奨めします。
何故なら、何かエラーが起こった場合、全てのいろいろなJSの何処が間違えているか検証しにくいのと、もし他のページでそのJSの中の一部分のプログラムのみが必要だった場合、そのファイルの上から下まで読み込むので意味の無い負荷がかかり外部に出した意味が無くなる…等の理由があるからです。

長くなってしまいましたが、お判りになりましたでしょうか?また不明な点がありましたら、補足致します。

この回答への補足

回答ありがとうございます。
もともとのタグはこれです。
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
<TITLE>Java-Script</TITLE>
</HEAD>
<BODY>
<body background="a016bcg.gif">
<FORM></FORM>

<script language="JavaScript">
<!--
var bkgrnd_offset = 0;
var bk_object = eval('document.body');
function bk_scr(maxSize) {
bkgrnd_offset = bkgrnd_offset + 1;
if (bkgrnd_offset > maxSize) bkgrnd_offset = 0;
bk_object.style.backgroundPosition = "0 " + bkgrnd_offset;
}
var scr_timer = window.setInterval("bk_scr(400)",1);
//-->
</script>

<br><br>
</BODY>

それで、ご指示いただいたとおり、SUB1に
var bkgrnd_offset = 0;
var bk_object = eval('document.body');
function bk_scr(maxSize) {
bkgrnd_offset = bkgrnd_offset + 1;
if (bkgrnd_offset > maxSize) bkgrnd_offset = 0;
bk_object.style.backgroundPosition = "0 " + bkgrnd_offset;
}
var scr_timer = window.setInterval("bk_scr(400)",1);
部分のみを記述し、拡張子も変え、JS に変えました、INDEXのほうには、<script language="JavaScript" src="sub1.js"></script>
と記述しました、ただ気になるのは、HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
<TITLE>Java-Script</TITLE>
</HEAD>
<BODY>
<body background="a016bcg.gif">
<FORM></FORM
の部分は、INDEXの方に記述していいんですよね?<br><br></BODY>は割愛しました。
そして、実行したところ、スプリクとエラーになりました、なぜでしょうか?

補足日時:2003/05/04 09:11
    • good
    • 0
この回答へのお礼

回答ありがとうございます、スクリプトのエラーは出ていませんでした、確か。ページ全体がスクロールするタグを追加した時に、停止したのです、除除には、作動してはいるのですが、、、早速、お教えいただいた通り、やってみます。
少しは、はやくなるでしょうか?

お礼日時:2003/05/02 11:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!