There are some significant changes including:
- $()
is now $get(): This means that you can play nice with libraries such as
prototype. It is really interesting that Microsoft took this step
instead of saying “screw it. why should we change because of you” and
instead decided to play really nice. If you do not care about prototype
and co, you may prefer the simplicity of $() - Performance:
“We have spent time optimizing the network traffic size of client
JavaScript callbacks to the server. Controls like the UpdatePanel,
UpdateProgress, and Control Toolkit controls no longer emit xml-script
by default, and instead just emit 1-2 lines of JavaScript (which can
help significantly reduce the network traffic size on the wire). We
have also moved from using JavaScript closure-based classes to using
prototype-defined classes in the core type system, which we’ve found
reduces memory usage for most common application scenarios.” - File size:
They took time to modularize the JavaScript, and you can download
various parts and pieces instead of just the kitchen sink. I wonder if
VisualStudio will be smart and auto include what you really need? - Browser Support: Safari is now officially support, with Opera in the works
- Better Debugging Experience:
They did a couple of things to help with the hell that can be
JavaScript debugging: “1) By moving our JavaScript class definitions
from being closure-based to prototype-based, you can now use the
existing Visual Studio 2005 script debugger (and/or other existing
JavaScript debuggers) to better inspect and step through JavaScript
objects. Closures previously hid a lot of inspection information.2) We invested a lot of time putting together an automated
JavaScript build environment that enables us to produce two versions of
all of our JavaScript files: a retail version that is optimized for
performance and download size, and a fully instrumented debug version
that is optimized for helping you catch issues with your code during
development. Every function within the debug version of our script
files now includes parameter and argument validation code that verifies
that the function is being passed the correct arguments before running,
and that will assert with stack trace information if not. This can help
to more easily pinpoint errors with your JavaScript code early, and
hopefully significantly improve JavaScript debugging.” - Lots of Improvements in the Client Script Library Stack:
“a) Simpler client JavaScript event model. It is now easier to define
and attach events on the client. Object events are also now created on
demand to reduce startup time and the size of the working set. b)
Simpler Component, Behavior, and Control types. APIs can now be used
without first needing to instantiate their related objects, and
on-demand semantics have been added to improve performance. c) Client
networking improvements. Default callback functions and method-name
semantics provide a much easier way to perform common asynchronous
callbacks. d) Membership and Profile APIs. Simpler APIs for interacting
with the Membership and Profile APIs from client-side JavaScript are
now supported.”
Leave a comment