Indicador de carga jsf / primefaces durante o init do bean

No meu projeto JSF / Primefaces, tenho muito carregamento de dados no método init (postconstruct) dos meus beans. É por isso que eu gostaria de mostrar um indicador de gif durante a carga do bean.

Eu tentei com primefaces e o status do Ajax (versão programática do showcase)

http://www.primefaces.org/showcase/ui/ajaxStatusScript.jsf

Então, adicionei isso ao modelo do meu projeto

<p:dialog modal="true" widgetVar="loadWidget" header="Status"
    draggable="false" closable="false">

    <p:graphicImage value="../images/ajaxload.gif" />
</p:dialog>

Eu gostaria de poder ligarloadWidget.show(); no início do método init do meu bean eloadWidget.hide(); no fim.

Você tem uma idéia de onde e como disparar o javascript para exibir o gif de carregamento? obrigado

EDITAR

Eu poderia acrescentar que eu tentei isso. Aqui está a parte do meu modelo que inclui o conteúdo da página. Não está funcionando nem o p: diálogo é incluído antes ou depois do conteúdo.

<div class="content">
    <script>loadWidget.show();</script>
        <ui:insert name="body" />
    <script>loadWidget.hide();</script>
</div>

O console dizloadWidget is not defined

EDIT2

Vou tentar explicar como meu projeto funciona. Poderia ser útil.

Aqui está o meu modelo

<html ... >

<f:view contentType="text/html">

    <h:head> ... </head>

    <h:body>
        <ui:insert name="header" />
        <ui:insert name="menu" />
        <ui:insert name="body" />
        <ui:insert name="footer" />
        ... <!-- Other things -->
    </h:body>
</f:view>   
</html>

Em seguida, cada página define obody. Exemplo de uma página.

<html ... >

<ui:composition template="myTemplateAbove">

    <ui:define name="body">

            <h:outputText value="#{beanOfMyFirstPage.myText}" />
            <p:commandButton action="#{beanOfMyFirstPage.goToAnotherPage}" />
            ...
        </ui:define>
</ui:composition>

</html>

Em seguida, cada página é vinculada a um bean que estende um BaseBean.

@ManagedBean(name = "beanOfMyFirstPage")
@ViewScoped
public class beanOfMyFirstPage extends BaseBean {
    // attributes + getters and setters

    @PostConstruct
    public void init() {
        super.init();
        ... // actions that take time cause of DB requests for example
    }

    public void goToAnotherPage() {
        navigation.handleNavigation(FacesContext.getCurrentInstance(), null, "mySecondPage");
    }

    // methods
}

E o feijão comum

public class BaseBean {

    @PostConstruct
    public void init() {
        super.init();
        // General actions for all beans
    }

}

questionAnswers(1)

yourAnswerToTheQuestion