I'm working on Jasper Reports using JasperSoft Studio. I have a huge data set (around 50 million) that needed to be filled in the reports. I can able to get them with pagination.
But unfortunately while I try to export data in Excel/PDF formats where pagination cannot be applied as per the requirement, it is taking too long to load ANY data and the user has to wait until the report generation is over.
Is there any way to generate and send the data to the client and keep them adding there after? So that the user will know something is loading instead of make them to wait for long time.
I tried the settings given here, http://community.jaspersoft.com/questions/534989/settings-required-generating-large-reports. But still It is loading the file altogether only and not in an expected way.
Any help on this would be greatly appreciated.
as an introduction: I am new to GWT and coding, so my questions may appear basic.
I made web app using GWT, Maven, Hibernate, IntelliJ IDEA. I deployed app on my own Tomcat server (I have separate computer for this: HP ProLiant ML310e Gen8 v2 4-Core 3.1GHz 4GB DDR3 + HDD 2x1TB SATA).
It is simple page with 5 tabs, and it has one .png 48 Kb image as header. The view that is loaded initially has:
2 Labels with few words,
CellTable containing 20 rows (content is obtained from database through RPC, from database)
4 Buttons (for table paging)
This view has almost no content, it has following panels just for exact layout I want:
3 VerticalPanels, 6 HorizontalPanels, 1 Tree and 1 Grid
The problem is: . When I run URL first time, it takes 1:09 min to load anything. And every next time I paste URL it takes about second to display app.
(after page loading everything goes smoothly, just a second to display widget)
I read this article: http://blog.trifork.com/2007/11/30/optimizing-startup-time-for-gwt-hosted-mode/ , but server runs the app in production mode (GWT.getScript() returns true). I also ran through a few topics on stackoverflow, but I don't see what loading time is "normal" for small size apps.
If time above 30 seconds is required to run anything, then GWT appears unacceptable for typical user, who may think that the link is broken at first time... I don't know how it works - is GWT rebuilding and recompiling the page for every new user request?
I don't know how it works - is GWT rebuilding and recompiling the page for every new user request?
No.
GWT uses caching. The initial loading time is really depends on many factors.
When user/browser requests for the very first time, all the resources related to the page loads. That takes few seconds to load and really depends on your internet speed.
Once the complete page loaded and if you are requesting new page/ reloading the current page, all the resources won't load this time.
Coming to the part that rebuilding and recompiling for each request is wrong. In Gwt there are permutations which are specific to each browser. Every major browser have it's own permutation. If you request from Mozilla for example, permutations related to Mozilla loads. These permutations actually generates at compile time of project which you done in your IDE before deploying the project.
Once the request hit the browser, for very first time these all files related to the specific permutation loads into browser and cached in browser. Form next time on words you won't see any new files loading in to browser (you can see that using your firebug).
Using code splitting, lazy intializations and data compression techniques.
Continue reading .....
check yourapp.gwt.xml file if you have inherited some modules that takes time to load.
if so, during first load it takes time and the way gwt works is it loads and maintains a cache for future loads, which answers your problem about taking time to load at first and seconds to load next time.
And gwt does not rebuild or recompile the page, simply displays the page you have compiled
Take a look at GWT.runAsync, this will help you to not load everything on startup, just what you need :)
I have built a GUI which works through the browser. It has drag-n-drop facilities and it prepares an XML when all the attributes have to initialized to it. I can relate the system similar to this online drawing tool available : https://www.draw.io
Its working perfectly as of now, but there is a problem while saving the XML. As of now, I am dynamically creating a form through Javascript and sending the information in the form of an HTTPRequest. It works well when the XML is small (around 5-6 Mb in size).
Off late, the XML size has increased several folds (around 80-100 Mb) and the GUI hangs frequently due to this. It takes 8-10 minutes to send the data across the network and sometimes the browser shuts down automatically after being unresponsive for long duration, thereby thwarting the efforts that the user has put in to create the XML in GUI.
I am using Java in the controller's end. When the user saves the XML, it is passed through the dynamically created HTML form to the backend which is accessed by a Java Controller. I require a better mechanism since sending the entire 80 Mb XML data as an HTTPRequest is becoming extremely cumbersome. Any suggestions to improve it will be welcome.
Thanks a lot..
I have a database table which is running on a remote host. I need to write a program to display this table in a windows form or on a html page on the desktop screen. The program needs to run at equal intervals (say 30 min).
After every 30 min the program will run and the data needs to be overridden on that form or page. There could be any approach to this. Prefer Java.
Two different ways of doing it (really three, the third one being running a java-applet)
The coarsest way is to put a refresh header in your html like
<meta http-equiv="REFRESH" content="600;URL=page.php">
where you have to exchange page.php with whatever is the address of the page you want to reload (this says basically after 600 secounds, load page "page.php" You will not be able to sync this to the dbupdates, as the refresh happens a fixed time after the page load. So how often you reload will be a compromise between your server load and how long delay you will accept. Also, you probably will want to have this as a separate frame (ooouch!) if some information is to be entered on the page.
A bit more contemporary, use javascript ajax and timed events. You want to juse jquery or prototype.js or another library for that. Here you may be able to sync the reloads to the database updates, given that the real time clock on the workstation and the server are in sync.
I'm currently working on a Struts 2 application with Spring as backend with MySQL database.
Right now fetching 1000+ rows on page load.
I'm using tablesorter jquery plugin for displaying the results,sorting on click and pagination purpose.
But the page is taking lot of time to load and also it hangs in IE !!
Is there any easier way to do this like fetching required data from database as and when the user makes the selection like fetch first 10 rows,sorting data,etc.
Any ideas to make the application work faster are welcome !!
I couldn't tell from the docs if the plugin supported server-side paging or not, but that'd be one thing to consider. It was unclear if its paging plugin had any options for this.
Does the plugin's example with a thousand students crash under the same circumstance?