i have very strict requirements for performance on a large data entry application. You can imagine a single form with hundreds开发者_开发问答 of fields, tabs, modal popups and similar.
The question is, what is the best Ajax architecture that i can implement to make it fast?
i was thinking about lightweight json async calls on the client, and async operations on the server. I was also considering HTML templates on the client, instead of building html on the server.
Let me know what you think.
Thanks in advance.
Use a combination of jQuery and HTML for the client and .net methods in the server-side callbacks. Async calls are good, but not always the best choice, remember that. Basically, use as few server-side components as possible because it generates much markup
there are also techinques for improving performance like caching. This can be done many places, for example on the .aspx page or on the web-server itself.
If you can, turn off the viewstate. This can generate much unnecessary markup
I would use a combination of JQuery ajax and ASP.NET MVC 3. These two combined provide an easy way to make fully async applications and due to the nature of MVC you can have HTML templates, most of which are already available through the MVC3 template.
Ok, I hate to say it.. but what you want is impossible. You cannot have a form with hudreds of elements on it, and still have it perform well. Of course "perform well" is subjective.. but the only way to get good performance over a high latency network connection with variable bandwidth (like the internet) is to work with very small sets of elements.
Using AJAX-Enabled WCF Services, JQuery and JQuery Templates can give you a good network throughput performance and a good user experience for your users.
But this comes with a price. Developing, debugging and mantaining such an application is very hard considered to a regularly developed ASP.NET application.
It's a trade-off, and if you ask me I would suggest you to go for the traditional way and make some improvements to your application interface, such as dividing forms, implementing a save-continue wizard-like type input screens. You can still use JQuery to improve user experience and caching to improve application performance. Keeping an eye on view-state and using UpdatePanel's as necessary could help even more.
精彩评论