このJSは、多くのフィールドがあるページで実行されます。とにかくこのコードの速度を向上させるために見ることができますか?もしそうなら、あなたが見つけたものを説明できますか?私はあなたが属性を使用していることがわかりますこのJavaScriptを最適化することができますか?
var _TextInputs = null;
function GetTextInputs()
{
if (_TextInputs == null)
{
_TextInputs = jq('input[type=text]');
}
return _TextInputs;
}
var _Spans = null;
function GetSpans()
{
if (_Spans == null)
{
_Spans = jq('span');
}
return _Spans;
}
function UpdateRate(ratefield, name)
{
GetTextInputs().filter('[' + name + ']').each(function()
{
this.value = FormatCurrencyAsString(FormatCurrencyAsFloat(ratefield.value));
CalculateCharge(name.replace('Rate', ''), jq(this).attr(name));
});
}
function CalculateCharge(name, activity_id)
{
var inputs = GetTextInputs();
var bill_field = inputs.filter('[' + name + 'Bill=' + activity_id + ']');
var rate_field = inputs.filter('[' + name + 'Rate=' + activity_id + ']');
var charge_field = GetSpans().filter('[' + name + 'Charge=' + activity_id + ']');
charge_field.text(FormatCurrencyAsString(FormatCurrencyAsFloat(bill_field.val()) * FormatCurrencyAsFloat(rate_field.val())));
}
Firebugには素晴らしいjavascriptプロファイラーがあります。時間が実際に費やされている場所が表示されます。 – harpo
Firefoxはこれをすばやく実行します。問題はIEにあります。 – ChaosPandion
IE 8には素晴らしいJavaScriptプロファイラが組み込まれています。F12キーを押します。 –