在我的Web應用程序中,我使用JSF和primefaces。 在一些按鈕上我有耗時的功能。在此期間,我想顯示一個加載動畫,直到整個網站完全建成。這我通過調用函數showLoading()和hideLoading()是這樣做的:顯示加載動畫延遲
<p:commandLink oncomplete="hideLoading();" onstart="showLoading()" process="@form" update="@form" actionListener="#{dummyController.dummyMethod}"
Content
</p:commandLink>
裏面的功能,我只是顯示/ DIV hidings的對象具有指定ID:
function showLoading() {
$("#loader").show();
}
這一切工作正常。 現在我只想顯示加載動畫,如果頁面需要超過一秒的構建。這就是爲什麼我修改的功能是這樣的:
function showLoading() {
$(#loader").delay(1000).show(0);
}
function hideLoading() {
$("#loader").clearQueue();
$("#loader").hide();
}
我在這點問題:有時加載器工作正常,但在某些情況下,它不會出現。 我的建議:showLoading在不同的時間被調用(由客戶管理)。有時它在開始時被稱爲正確,但有時其他操作在showLading之前執行,因此建立頁面的其餘部分不到一秒鐘。
有人有任何建議來解決這個問題嗎?也許用Javascript中的多線程(我讀了一些關於Web Workers的內容...)
感謝您的幫助。
http://javaevangelist.blogspot.nl/2014/02/jsf-22-tip-of-day-using -jsf-ajax-events.html –