我有一次机会在页面的 DOM被设置样式、渲染和显示给用户之前对其进行操作。显然,我很乐意在这个窗口中做所有的动态有趣的事情,因为在页面呈现之后 DOM 操作非常昂贵。由于这主要针对移动设备,因此这种优化对我来说很有价值。
这是一个基本概述/时间表:
function CalledBeforePageRendered(){
DoAsyncDataBaseWorkWithCallBack(AsyncDataBaseCallBack);
DoLocalizationsAndOtherSYNCRONOUSActions();
}
function AsyncDataBaseCallBack(results){
// code that processes the results element
// code that manipulates the DOM *before* it's styled.
}
问题是DoAsyncDataBaseWorkWithCallBack
并DoLocalizationsAndOtherSYNCRONOUSActions
快速完成然后CalledBeforePageRendered
返回并应用后续样式。
应用样式后,页面将显示给用户......然后AsyncDataBaseCallBack
被调用,然后应用 div 标签和其他 DOM 修改。只是,我需要在风格化之前进行这些修改
有什么办法可以让' CalledBeforePageRendered
'等待' AsyncDataBaseCallBack
'完成后再返回?我知道闭包通常可以在这里工作,但我不知道如何使闭包与在CalledBeforePageRendered
函数外部定义的回调一起工作。