2011-01-07 144 views
1

我目前正在觸發YUI自定義事件,一組休息呼叫完成後。禁用加載欄的功能已訂閱到自定義事件。但是,如果由於某種原因導致其他調用超時,我想禁用加載欄(加載欄灰顯背景並阻止用戶交互),並可能彈出一個彈出窗口,指出數據無法加載完全。我在想一個簡單的超時會有訣竅,但我不確定它是否是最好的解決方案。這裏有一些僞代碼:火災事件一旦超時或其他事件完成後

var event = new Yahoo...CustomEvent("abc"); 
event.fireOnce = true; //I don't need to fire this event multiple times 
event.subscribe(hideWaitBarFunction); 
window.setTimeout(event.fire(), 10000); 
//rest call 
event.fire(); //if rest call doesn't return after 10 seconds, hide wait bar anyway 

在這種情況下,事件應該只觸發一次。現在假設我不想彈出一個錯誤,有沒有更好的方法來做到這一點?我的javascript/yui知識是......有限的。讓我知道是否需要澄清。

+0

那麼,上述解決方案正式工作。它看起來不像它最乾淨,但功能完美。我仍然樂於接受建議,因爲在更多的地方實現這一點會創建大量額外的代碼。 – Joseph 2011-01-10 22:10:55

回答

0

我假設您使用的是YUI 2.x,在這種情況下,ConnectionManager的回調會有一個失敗掛鉤,您可以在此處插入此事件觸發。這不適合你嗎?

+0

這個問題在一年前問過。解決方案不再需要。 – Joseph 2012-04-13 14:54:07