在這種情況下,該網站是隻能在IE6上查看的內部網站。目標是讓它在IE9中可見。有幾個IE瀏覽器專有腳本編寫,例如使用xml data islands,以點符號訪問文檔元素,即resulttable.style.display = "block";
等等。上述內容對於手頭的問題可能有點多餘,但它可以提供一些見解。重構大型JavaScript方法的建議
在整個網站中,有大量的JavaScript方法非常大,很難調試。給你一個想法,有100個以上的JS文件,每個平均大約1000行。
以下是省略了所有名稱/邏輯的實際方法。所有的返回值都是依賴於以前的邏輯:
function someMethod() {
if (stuff) {
// operations
if (stuff) {
// operations
for (loop) {
// operations
if (stuff) {
// operations
if (stuff) {
// operations
for (loop) {
if (stuff) {
// operations
}
}
// operations
}
else {
// operations
if (stuff) {
// operations
} else {
// operations
}
}
// operations
}
}
// operations
if (stuff) {
// operations
if (stuff) {
// operations
if (stuff) {
// operations
for (stuff) {
// operations
if (stuff) {
// operations
} else {
// operations
}
}
if (stuff) {
// operations
if (stuff) {
// operations
for (loop) {
// operations
}
// operations
for (loop) {
if (stuff) {
// operations
}
}
}
// operations
if (stuff) {
// operations
}
return something;
}
else {
// operations
return something;
}
}
else {
// operations
if (stuff) {
// operations
return something;
}
else {
// operations
if (stuff) {
// operations
}
// operations
return something;
}
}
}
}
return something;
}
else {
// operations
return something;
}
}
return something;
}
當與傳統的網站打交道,你有什麼建議打破JavaScript方法爲更易管理的片段?
免責聲明:我的JS技能是事物的平均水平。我們現在想避開JQuery。
jQuery將做這些地段IFS爲你的(我假設你說的這些IFS彼此相關的瀏覽器特性),所以我認爲應該很好學習它,並將其用於重構代碼。 – davidbuzatto 2012-07-18 03:27:56
我建議你使用一個工具。看到我的[問題](http://stackoverflow.com/questions/11364605/procedure-or-tool-to-refactor-section-of-javascript-to-function)和提供的答案 – OnesimusUnbound 2012-07-18 03:29:07
@davidbuzatto - 這些都是大邏輯流程報表;與瀏覽器的特性無關。也許這個帖子沒有傳達,但是當前的網站是爲IE6設計的,沒有其他瀏覽器。 – 2012-07-18 05:00:55