我有一种情况,我从FireFox 3.6+上的GWT网格中的服务器渲染项目。我有大约200个项目,我加载它们在循环:无响应的JavaScript通知
users = myService.getUsers();
for(User user : users){
myPanel.addUser(user); // Pseudocode. Actually i add some labels and text fields...
}
它tooks很长一段时间在这个循环改变DOM
,所以我得到了“无响应脚本”的通知。但我无法重构代码或分页,我需要一次加载1页上的所有200个项目。
有什么办法可以抑制这个通知吗?要通知浏览器我的脚本没有挂起,但要做一些有用的事情?
UPD Ok Ok,这里是我的代码更接近。这是一个来自大项目的代码,我们有很多自定义组件,所以我认为它没有实际价值。
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);
}
}
});
而且我认为this可以帮我...
你肯定没有骑自行车吗?不要认为PC对200个javascript数组进行处理是个大麻烦......如果你仔细观察你的代码,原来的,而不是伪代码,那将是非常好的。 – devdRew 2012-01-06 14:39:09
该警告应被视为您的脚本需要修改的指示。你应该发布相关的代码,也许有人会看到改进的潜力。 – Pointy 2012-01-06 14:42:16