У меня ситуация, когда я рендерил элементы с сервера в сетке GWT на FireFox 3.6+. У меня есть приблизительно 200 предметов, и я загружаю их в цикле:
users = myService.getUsers();
for(User user : users){
myPanel.addUser(user); // Pseudocode. Actually i add some labels and text fields...
}
Это слишком долго меняет DOM
в этом цикле, поэтому я получил уведомление "Unresponsive script". Но я не могу изменить код или сделать нумерацию страниц, мне нужно, чтобы все 200 элементов на 1 странице загружались одновременно.
Есть ли способы подавить это уведомление? Чтобы уведомить браузер, что мой скрипт не зависает, а делает что-то полезное?
UPD Хорошо , вот мой код ближе. Это код из большого проекта, и у нас есть много пользовательских компонентов, поэтому, я думаю, он не имеет реальной ценности.
myService.getUsersDetails(searchCriteria, new MyCallback<List<User>>)
{
@Override
protected void response(List<User> result)
{
gridExpanderPresenter.clear();
int i = 0;
for (User user: result)
{
UserDetailsView detailsView = detailsViewProvider.get();
gridExpanderPresenter.setPresenter(UsersPresenter.this);
gridExpanderPresenter.add(detailsView.asWidget()); //Here is DOM manipulation i mentioned
if (i++ % 2 == 1)
{
detailsView.setOdd(); //Setting style here
}
detailsView.setData(user);
}
}
});
И я думаю это может помочь мне ...