2013-03-12 53 views
1

我有托管BackBean上的方法getStudents,我打电话给getstudents,它会调用数据库并获取数据。用户界面显示正常,但由于它需要太多时间来加载页面,导致性能问题。请告诉我如何处理这个性能问题。如何提高加载性能

+0

首先检查您是否正在执行'只需要列选择查询'或'选择整个表格'这将给您提供不必要的数据,这会影响页面加载时间。这仅仅是一个原因。可能有其他依赖于您的代码 – SRy 2013-03-12 05:06:06

+0

@ SrinivasR:我只打电话给需要的专栏..在我的情况下,我只是获得学生ID。这种getstudent方法已用于各种页面。我的后端bean是会话作用域。每次调用getter方法时,它都会调用DB获取学生列表。 – shreekanth 2013-03-12 05:27:56

+1

也许你对bean范围没有正确的想法。会话有限域bean构造函数只会调用一次。如果你在构造函数中调用数据库,会话中的数据将被加载。它不会再次调用该方法 – SRy 2013-03-12 05:30:08

回答

3

你不应该在getter方法中做业务逻辑。你应该初始化列表中@PostConstruct方法或吸气做延迟加载:

private List myList; 

@PostConstruct 
public void init() { 
    // init my List 
} 

// getter and setter 

@PostConstruct方法管理的bean实例化后调用。我建议你在这个方法中初始化,而不是在构造函数中。当您在支持bean生命期间更改列表时,应该在更改时更新它。您可以添加由用户创建的数据,也可以选择在插入值后再次调用数据库。你必须担心这一点,没有自动化。