2016-07-27 11 views
0

私はスクリプトをより効率的にしたいと思っています。かなり大きいスクリプトを見て、私はnT.dS[v]がかなり頻繁に繰り返されることを認識しています。 私はいくつかの方法でそれを再定義しようとしましたが、誰も働いていないので、あなたの誰かが方法を知っているのだろうかと思っていました。Javascript - より効率的なスクリプトのためのIDの短縮

グローバル化するには短縮が必要です。私が実証しているように、価値は既に短縮されています(そしてうまく機能しています)が、別の短縮形に組み合わせてフォームID:nTと入力ID:dSを含めることができます。

<script id="jsGlobals"> 
var v = 'value'; // [v] - Global variable in HTML 
... 
... 
... 
</script> 

<script id="jsCompute"> 
function compute(nT) { 
var sTr = nT.dS[v]; // nT is formID and dS is inputID. [v] replaces .value 
var q = sTr.toUpperCase(); 
    if(q == "1") nT.dS[v] = dS116[v] //dS116 in input 
    if(q == "2") nT.dS[v] = dS117[v] //ds117 is input 
else nT.dS[v] = eval(nT.dS[v]) ; 
} 

some other functions 

some other functions 
</script> 
+2

再*をお楽しみください*二つのことを:1.括弧でそれらを置くことによって、第2級市民として「女の子」をキャストしないでください、それはカジュアルの形です除外は有用ではない。 2.私たちは、「こんにちは」と「ありがとう」をしません。 –

+0

あなたのコードは現在動作しているようですが、あなたはそれを改善しようとしています。一般的に、これらの質問はこのサイトでは強すぎますが、[CodeReview.SE](// codereview.stackexchange.com/tour)のほうが良いかもしれません。このサイトよりも少し厳密であるため、[必要条件](// codereview.stackexchange.com/help/on-topic)を必ずお読みください。 – FrankerZ

+0

私の質問はこのようにしないでください。T.J.私は複数の人、非母国語の話し、一般的な礼儀の不足について話すよりも、良いことがあります。個人的には、人々が時間を費やしている時に、私はいくつかの一般的な礼儀に感謝します。ここのルールにない限り、私の質問を無用にしたり書き直したりしないでください。ただしないでください。 –

答えて

0

[OK]を、私は、スクリプト内でグローバルIDと組み合わせ[v].valueの略)を組み込む方法は解決していないが、ローカルスコープに二重のIDを短縮することはうまく働いたと20%削減を提供します。それを役に立つと思うかもしれない他の人にこれを書いてください。

を開始だから、要するに、私は関数の後a =nT.dS;を追加することができ、その後の書き込み:if(q == "1") a[v] = dS116[v] の代わりに:if(q == "1") nT.dS[v] = dS116[v] バニラ:if(q == "1") nT.dS.value = dS116.value

なぜこれが重要なの? まあ、基本的には百万件の質問を追加して というファイルを1つのファイルに入れてクロスブラウジング、html5 ...を実行しても、 メガバイトまたは2メガバイト以下に留まることができます。 sqlなしで独自の(固定または入力選択)検索エンジンを構築します。 これらの20%は、まもなく非常に多くのミリ秒のロードと、ファイルサイズのストレージのキロバイトを追加します。代わりにローカル保存されたユーザ入力の回答(またはロボットの入力)の

テキストの答えは次のようになります。

if(q == "test") a[v] = "Hell yeah! Love it!" 

バニラは次のようになります。

if(q =="test") nT.dS.value ="Hell yeah! Love it!" 

と私は混在させることができない限りa[v]手紙にまで、それははるかに効率的になることはありません。

「男(と少女)ちょっと:)」

関連する問題