編輯:我也在建議後,如果有更好的方式去這個?提高jquery/javascript網頁邏輯的性能
我有一個顯示用戶填寫時間表的網頁。 時間表爲一個月,所以它有多少行 和5列數據,正常小時,延長小時,班次 假期小時和總數。
我有一個下拉列表,允許用戶選擇月份 和年文本框。
當他們選擇一個月份時,代碼將會忽略底部的 行,如果它們不是必需的,由於不能說31天爲 的示例。它還會根據是否是週末(不同顏色)設置每個行的背景顏色。
問題是當選擇月份時需要3-4秒到 運行代碼並且因爲他們不知道 發生了什麼而運行該代碼令人討厭。
有什麼辦法可以改善這種情況,你可以看到嗎?代碼 如下所示。
$('[id$=lstMonth]').change(function() {
MonthChange();
});
});
function MonthChange() {
var month = parseInt($('[id$=lstMonth]').val())-1;
var year = $('[id$=txtYear]').val();
var daysInMonth = GetDaysInMonth(month, year);
var day, dte, bgcolor;
for(day=28; day<=31; day+=1) {
if(day > daysInMonth)
DisableRow(day);
else
EnableRow(day);
}
for(day=1; day<=daysInMonth; day+=1) {
dte = GetDate(day, month, year);
bgcolor = GetInputFieldColor(dte, false);
SetBackgroundColor(day, bgcolor);
}
}
function SetBackgroundColor(day, bgcolor) {
var selector = '[id$=txtNormal' + day + ']';
$(selector).css("background-color", bgcolor);
$(selector).parent().css("background-color", bgcolor);
selector = '[id$=txtExtended' + day + ']';
$(selector).css("background-color", bgcolor);
$(selector).parent().css("background-color", bgcolor);
selector = '[id$=txtShift' + day + ']';
$(selector).css("background-color", bgcolor);
$(selector).parent().css("background-color", bgcolor);
selector = '[id$=txtHoliday' + day + ']';
$(selector).css("background-color", bgcolor);
$(selector).parent().css("background-color", bgcolor);
selector = '[id$=txtTotal' + day + ']';
$(selector).css("background-color", bgcolor);
$(selector).parent().css("background-color", bgcolor);
}
function DisableRow(day) {
var selector = '[id$=txtNormal' + day + ']';
$(selector).css("background-color", "red");
}
function EnableRow(day) {
var selector = '[id$=txtNormal' + day + ']';
$(selector).css("background-color", "blue");
}
這是什麼做的?性能另外由於webforms,它將前綴infront關閉控制ID。 – Malcolm 2009-07-27 07:14:44