gpt4 book ai didi

java - GWT:使用 RPC 从数据存储填充页面太慢

转载 作者:搜寻专家 更新时间:2023-10-31 08:30:29 24 4
gpt4 key购买 nike

有没有一种方法可以使用从数据存储加载的数据生成的 GWT UI 元素来加快页面的填充速度?我可以避免在加载页面时进行不必要的 RPC 调用吗?

有关我遇到的问题的更多详细信息: 有一个页面,我在该页面上生成了一个表,其中包含从数据存储加载的实体列表的名称和按钮。该页面有一个 EntryPoint,在它的 onModuleLoad() 中我做了这样的事情:

final FlexTable table = new FlexTable();

rpcAsyncService.getAllCandidates(new AsyncCallback<List<Candidate>>() {
public void onSuccess(List<Candidate> candidates) {
int row = 0;
for (Candidate person : candidates) {
table.setText(row, 0, person.getName());
table.setWidget(row, 1, new ToggleButton("Yes"));
table.setWidget(row, 2, new ToggleButton("No"));
row++;
}
}
...
});

这可行,但需要 30 多秒才能加载包含 300 名候选人的按钮的页面。这是 Not Acceptable 。

应用在 Google App Engine 上运行并使用应用引擎的数据存储区。

最佳答案

你可以做很多事情,我会按顺序列出它们,这会给你带来最好的影响。

  1. FlexTable 不适用于 300 行。由于您的表非常简单,您应该考虑手动生成 HTML,然后使用简单的 HTML 小部件。此外,300 行的信息很多 - 考虑使用分页。 DynaTable sample app向您展示如何执行此操作。
  2. 您似乎每页使用一个 GWT 模块。这是错误的 GWT 方法。加载 GWT 模块有一些不小的成本。要理解我的意思,请比较 gmail 上的浏览​​器刷新与 gmail 提供的刷新链接。这与您网站上的每个页面都有不同的 GWT 模块时支付的费用相同。
  3. 如果跨 View 需要候选人列表,您可以将其作为 JSON 对象与 HTML 一起发送,然后使用 Dictionary class在 GWT 中阅读它。这会节省您正在进行的 RPC 调用。仅当数据对多个 View /屏幕有用(例如登录用户信息)时才推荐使用此方法
  4. 检查您的 RPC 方法调用花费了多长时间。您可以启用 stats in GWT找出您的应用程序在哪里花费时间。
  5. 您还可以运行 Speed Tracer以确定瓶颈在哪里。这是最后一个,因为很明显 FlexTable 正在执行大量 DOM 操作。一般来说,如果您不知道从哪里开始,Speed Tracer 是一个很棒的工具。

关于java - GWT:使用 RPC 从数据存储填充页面太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2754035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com