diff --git a/docs/content/misc/faq.ngdoc b/docs/content/misc/faq.ngdoc index f32333e8e7a4..e17f62ec1cd5 100644 --- a/docs/content/misc/faq.ngdoc +++ b/docs/content/misc/faq.ngdoc @@ -4,54 +4,68 @@ #FAQ -### Why is this project called "angular"? Why is the namespace called "ng"? +### Why is this project called "AngularJS"? Why is the namespace called "ng"? -Because HTML has angular brackets and "ng" sounds like "angular". +Because HTML has Angular brackets and "ng" sounds like "Angular". -### Is an HTML5 tag? -No, is not an HTML5 tag. angular is an orthogonal project to HTML5; you can use the two -together. +### Is AngularJS a library, framework, plugin or a browser extension? -### Is angular a {library, framework, DOM manipulation library, widget library, native plugin}? +AngularJS fits the definition of a framework the best, even though it's much more lightweight than +a typical framework and that's why many confuse it with a library. -No, angular is none of these. You don't call its functions, it does not call your functions, -it does not provide a way to manipulate DOM, but does provide primitives to create UI projections -of your data. There are lots of existing widget libraries which you can integrate with angular. -It is 100% JavaScript, 100% client side and compatible with both desktop and mobile browsers. +AngularJS is 100% JavaScript, 100% client side and compatible with both desktop and mobile browsers. +So it's definitely not a plugin or some other native browser extension. -### Do I need to worry about security holes in angular? -Like with any technology, angular is not impervious to attack. angular does, however, provide +### Is AngularJS a templating system? + +At the highest level, Angular does look like a just another templating system. But there is one +important reason why Angular templating system is different and makes it very good fit for +application development: bidirectional data binding. The template is compiled in the browser and +the compilation step produces a live view. This means you, the developers, don't need to write +code to constantly sync the view with the model and the model with the view as in other +templating systems. + + +### Do I need to worry about security holes in AngularJS? + +Like with any technology, AngularJS is not impervious to attack. angular does, however, provide built-in protection from basic security holes including cross-site scripting and HTML injection -attacks. angular does round-trip escaping on all strings for you. +attacks. AngularJS does round-trip escaping on all strings for you and even offers XSRF protection +for server-side communication. + +AngularJS was designed to be compatible with other security measures like Content Security Policy +(CSP), HTTPS (SSL/TLS) and server-side authentication and authorization that greatly reduce the +possible attack vectors and we highly recommended their use. -### Can I download the source, build, and host the angular environment locally? + +### Can I download the source, build, and host the AngularJS environment locally? Yes. See instructions in {@link downloading}. -### Is angular a templating system? -At the highest level, angular does look like a just another templating system. But there is one -important reason why angular templating system is different and makes it very good fit for -application development: bidirectional data binding. The template is compiled on the browser and -the compilation step produces a live view. This means you, the developer, don't need to write -code to constantly sync the view with the model and the model with the view as in other -templating systems. ### What browsers does angular work with? -Webkit-based browsers (Safari, Chrome, iPhone, Android, WebOS, BlackBerry 6), Firefox, IE6 and -above. Note that CSS only works on IE7 and above. +Our we run our extensive test suite against the following browsers: Safari, Chrome, Firefox, Opera, +IE8, IE9 and mobile browsers (Android, Chrome Mobile, iOS Safari). + + +### What's Angular's performance like? + +The startup time heavily depends on your network connection, state of the cache, browser used and +available hardware, but typically we measure bootstrap time in tens or hundreds of milliseconds. -### What's angular's performance like? +The runtime performance will vary depending on the number and complexity of bindings on the page +as well as the speed of your backend (for apps that fetch data from the backend). Just for an +illustration we typically build snappy apps with hundreds or thousands of active bindings. -angular takes ~300ms to load, render, and compile. In Chrome it uses about 2-5MB of memory. Your -app's performance will vary depending on how many bindings you use. -### How big is the angular bootstrap JS file that I need to include? +### How big is the angular.js file that I need to include? + +The size of the file is < 29KB compressed and minified. -The size of the library itself is < 50KB compressed and obfuscated. ### Can I use the open-source Closure Library with angular? @@ -60,22 +74,25 @@ in angular. ### Does angular use the jQuery library? -Yes, angular uses {@link http://jquery.com/ jQuery}, the open source DOM manipulation library. -If jQuery is not present in your script path, angular falls back on its own implementation of -{@link api/angular.element jQuery lite}. If jQuery is present in the path, angular uses it to -manipulate the DOM. +Yes, Angular can use {@link http://jquery.com/ jQuery} if it's present in your app when the +application is being bootstrapped. If jQuery is not present in your script path, Angular falls back +to its own implementation of the subset of jQuery that we call {@link api/angular.element jQLite}. + ### What is testability like in angular? -Very testable. It has an integrated dependency injection framework. See +Very testable and designed this way from ground up. It has an integrated dependency injection +framework, provides mocks for many heavy dependencies (server-side communication). See {@link api/ng service} for details. + ### How can I learn more about angular? Watch the July 28, 2010 talk "{@link http://www.youtube.com/watch?v=elvcgVSynRg| Angular: A Radically Different Way of Building AJAX Apps}". + ### How is angular licensed? The MIT License.