Hello DevExpress,
we are using the ASPxScheduler Control in our project, to publish timetables using DayView, WorkWeekView and TimeLineView. Many customer complain about the speed, the Control publishs the data in our web application. In some situations, the browser stops running javascript and shows critical error messages after Databinding. In other situations, the browser needs up to 5 minutes to display data. Our customer want to publish a lot of data in one Scheduler-View, sometimes up to hundreds, thousand and more items at one screen. This situation is significant monitored in the Internet Explorer 8 and 7.
A similar situation, we talked about, is presented in http://www.devexpress.com/issue=B146789, but also using of ASPxScheduler.FetchAppointments cannot reduce the number of items, which have to be displayed. So the customer need to display up to 150 items in DayView, and up to 1000 items in WorkWeekView.
My expectation, and the expectation of my customer, is publishing data in a few seconds, at best up to 5 seconds. So my question to you, why the ASPxScheduler works so slowly in Internet Explorer? Is there any chance, to significant speed up rendering in Internet Explorer? Intime, the delay in Internet Explorer is not acceptable.
Thanks for your coming answer, Guido.
Disclaimer: The information provided on DevExpress.com and affiliated web properties (including the DevExpress Support Center) is provided "as is" without warranty of any kind. Developer Express Inc disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.
Confidential Information: Developer Express Inc does not wish to receive, will not act to procure, nor will it solicit, confidential or proprietary materials and information from you through the DevExpress Support Center or its web properties. Any and all materials or information divulged during chats, email communications, online discussions, Support Center tickets, or made available to Developer Express Inc in any manner will be deemed NOT to be confidential by Developer Express Inc. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.
Hello Guido,
Thank you for contacting us. If you display a lot of appointments within one page and examine its HTML layout (View -> Source menu item), you will see that it is too large and complex. The page will contain numerous controls, especially appointments with many nested items. Internet Explorer rendering mechanism is not capable of displaying a page until it processes all tables and calculates all sizes. However, FireFox, for example, displays all data and then tries to change similar sizes when it is required. As your page has many nested tables, IE might work slowly (even if it downloads the page fast). For instance, review the Are tables slow in rendering? web page. Usual advice on how to improve performance is to simplify the ASPX page markup. For instance, you might need to implement a lightweight version of a VerticalAppointmentTemplate (see the How to: Customize Appointment Appearance via Templates) to improve rendering speed. If any part of my response is unclear, please let me know.
Thanks,
Alessandro.
Hello Alessandro,
thanks for answer and examples. I know, that rendering in IE is not very fast in comparison to Firefox, maybe Safari pp. This newest browser rendered my website in up to 5 seconds, thats a acceptable time. But the IE needs more than 10 times longer displaying the same content, if I using the ASPxScheduler. So thats unacceptable for me, and for my customer in particular. Using a VerticalAppointmentTemplate like next …
<DayView>
<Templates>
<VerticalAppointmentTemplate>
test
</VerticalAppointmentTemplate>
</Templates>
</DayView>
does not speed up the rendering. I assume, that the fundamental problem seems to be the Javascript, produced by the ASPxScheduler control. After disable the Javascript-Option in IE, the ASPxScheduler displays itself, but no items are displayed. So I think, all items in ASPxScheduler will be rendered using Javascript, is it true? Is there any chance, using the control without Javascript?
Guido
Hello Guido,
Please note that by default ASPxScheduler operates in callback mode. This mode involves AJAX methods, which are based on JavaScript and XML. Certainly, you can switch ASPxScheduler to postback mode (see the Postback Mode demo). However, it will work much more slowly in this case than in callback mode, because the entire web page is refreshed in postback mode. In any case, it is not possible to work with ASPxScheduler with completely disabled scripts because, for instance, you will not be able to resize appointments in this scenario. As an immediate solution, I can only suggest that you reduce the number of appointments displayed on the web page at once. Please review the How to filter appointments by custom field values example for more information on how this can be done.
Thanks,
Alessandro.
Hello Alessandro,
I am using the ASPxScheduler in Postback-Mode, but this seems not to be the reason for this slow speed in IE8. I think, the produced Javascript cannot handle in IE8 the items in a acceptable time. After reading the source in IE8, I think all items will be positioned in the control using Javascript. And this Javascript should handle many items in IE8 too. I cannot accept, finding a solution in reducing the number of items. Other producer, for example Infragistics or Mediachase, using a fixed table-structure, for positioning the items in their control.
Why DevExpress using Javascript for positioning, knowing that a lot of items cannot rendered in a acceptable time in IE8? I need a solution, at the moment I cannot believe, that DevExpress don't have a solution for IE8 user.
Guido
Hello Guido,
Yes, you are right. However, please note that according to WebKit SunSpider JavaScript Benchmark Test, IE8 is considered the worst browser among all modern browsers, while IE9 is the best one. At present, our controls do not work correctly with the upcoming IE9 Beta. However, there is a suggestion in our database: Add support for IE 9. Also, we will try to improve web controls rendering in the context of the Reduce web controls' render size. Use <div> elements instead of <table> elements whenever possible. suggestion.
Thanks,
Alessandro.
Hello Alessandro,
thanks for your informations. We are together, the IE8 is a worst browser. Because more than 50% of all user worldwide, according http://gs.statcounter.com/, using the IE8 or under, I cannot dismiss the current problem in speed today and in nearest future too. In my opinion, there should be a kind of native solution in rendering the ASPxScheduler output. Maybe without all possible features. Basicly a output, so the browser can positioning items without any additional logic like Javascript.
Why should the user, the customer, install a browser from different producer? The IE8 is market leader, ok with a old and slow engine, but the leading browser. So I have to find a solution, maybe work around. My ambition to DevExpress is a ASPxScheduler control, which fully supports the IE8 engine and their given technical conditions.
Now, I have to decide a good solution for my IE8 customer. So, I need a clear statement: Would DevExpress create a faster solution in rendering the ASPxScheduler in IE8 ?
Thanks, Guido
*HopeSpringsEternal*
Hi Keith,
At the moment, I cannot promise anything definite. The ASPxScheduler's rendering is very complex and this complexity is caused by the specific task. Also, it requires a lot of client code to support all these features. As Alessandro told you, we will try to improve the control's client side performance, but at the moment, we cannot give any time frames in this regard.
Thanks,
Plato