2012-01-05 94 views
8

我目前擺弄着jQuery的ajax方法從JSON提要中獲取一些數據並根據數據動畫化一些條。嵌套的方法,最佳做法

因爲我在偷竊,我真的不知道我的方法是否正確。

$.ajax({ 

    url: "/echo/json/", 
    type: "POST", 
    data: data, 
    success: function(data){ 


    $("#value1-bar .usage-bar-fill").animate({ 
     width: data.Value1 
     }, 2500, function() { 
     // Animation complete. 
    }); 

    $("#value2-bar .usage-bar-fill").animate({ 
     width: data.Value2 
     }, 2500, function() { 
     // Animation complete. 
    }); 

    }, 
    dataType: "json" 
}); 

可以從ajax方法內動畫div,還是有更正確的方法來做到這一點 - 格式明智,內存明智等?

如何從ajax方法返回一些變量並從ajax方法外執行動畫方法會更好嗎?

入住在這裏的jsfiddle例如:http://jsfiddle.net/timkl/KPvCj/

我知道這是一個非常廣泛的問題,但作爲一個平面設計師來自學成才的網頁設計師 - 我從來沒有真正知道我在做什麼是好的做法。

回答

2

我喜歡這個問題,我很想看到一些更詳細的反饋,但我會說它看起來不錯。您已經在ajax方法中調用了嵌入式成功函數,因此擔心進一步嵌入函數的內存/性能似乎幾乎可以忽略不計...

如果您要爲usage-bar-fill設置動畫,請使用您可以在您的成功功能中使用相同/相似的動畫,然後我可以創建單獨的功能並調用這些功能,但是我確信您已經知道了;)

不錯的問題!

2

這幾乎是一個味道的問題,因爲這似乎是一個非常小的應用程序。當您的應用程序增長時,總體設計和原則成爲該過程中更關鍵的部分。

但是說,我不喜歡這種方法。它很容易產生不必要的重複代碼 - 除非這些嚴格的一次性情況非常特定於此用例,但大多數情況下您可以推廣以啓用代碼重用。

就我個人而言,我會在其他地方聲明回調函數,可能是已經知道應該使用哪個對象的對象(即您的選擇器),並知道如何處理它。通過這種方式,代碼幾乎可以自行構建,只保留需要它們的本地相關位。

在這個特定的情況下,它會沿着一個圖形對象的行,當設置一個值時,它適當地更新自己的顯示/視圖。

希望我的ramblings有道理。我可能太累了,不能發表意見和專家建議,所以我只是停留在這裏。

+1

你能改寫他的例子嗎?我通常和@timkl一樣,我一直在尋找更好的方法。 – 2012-01-05 13:58:06

+0

@Raubi也許吧。現在我太累了,但也許稍後。 – 2012-01-05 14:15:22