Splitting JavaScript into Dependent Modules Learning & Development Telerik Software Academy.

Slides:



Advertisements
Similar presentations
Creating Vector Graphics in the Web Learning & Development Telerik Software Academy.
Advertisements

Redundant Array of Independent Disks Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator Marian Marinov CEO of 1H Ltd.
Writing HTML made easier Telerik School Academy HTML, CSS and JavaScript.
JavaScript Development Tools
Inside Windows Boot Process Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator Marian Marinov CEO of 1H Ltd.
Guidelines to Preparing and Delivering an Elevator Pitch Presentation Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical Training.
Two basic algorithms for path searching in a graph Telerik Algo Academy Graph Algorithms.
About the Course Telerik Software Academy CSS Styling.
Binary, Decimal and Hexadecimal Numbers Svetlin Nakov Telerik Software Academy academy.telerik.com Technical Trainer
Eclipse + Android SDK, VS + Windows Phone SDK Telerik Software Academy Hybrid Mobile Applications.
Welcome to the JSON-stores world Learning & Development Telerik Software Academy.
Course Content, Evaluation, Exams Svetlin Nakov Telerik Software Academy academy.telerik.com Technical Trainer
Eclipse + Android SDK, VS + Windows Phone SDK Svetlin Nakov Telerik Software Academy academy.telerik.com Technical Trainer
Twitter Bootstrap Telerik Software Academy
Things you need to know George Georgiev Technical Trainer GeorgeAtanasov George Atanasov Front-End Developer.
Hamiltonian Cycle Penka Borukova Student at Telerik Academy.
Group Policy Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator
Reverse polish notation, Operations with big numbers Ivelin Rachev Telerik Corporation “Baba Tonka” High School of Mathematics.
April, Sofia, Telerik Software Academy Svetlin Nakov Telerik Software Academy academy.telerik.com Technical Trainer
Telerik Software Academy ASP.NET MVC.
Sales Processes, Sales Cycle and the Sales Force Margarita Antonova Volunteer Telerik Academy academy.telerik.com Business System Analyst Telerik.
Design Patterns that ease the design by identifying a simple way to realize relationships between entities. Antony Jekov Telerik Software Academy academy.telerik.com.
Using KendoUI for SPA Applications Learning & Development Telerik School Academy.
The way to create cross-platform apps Telerik School Academy Xamarin apps for iOS, Android & WinPhone.
PEST Analysis, Porter’s 5 Forces and Sustainability Strategies Margarita Antonova Volunteer Telerik Academy academy.telerik.com Business System.
Searching for a Job, Writing CV and Cover Letter, Passing a Job Interview Telerik Academy for Software Engineers October 6 th 2012 – Sofia academy.telerik.com.
Drive Partitioning Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator Marian Marinov CEO of 1H Ltd.
Telerik Software Academy Mobile apps for iPhone & iPad.
Google APIs and Facebook API Ivaylo Kenov Penka Borukova Telerik Corporation Telerik Academy Students.
The magic of virtual machines Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator Marian Marinov CEO of 1H Ltd.
Web development with ExpressJS Learning & Development Telerik School Academy.
What it is, and does it work Learning & Development Telerik School Academy.
Device APIs with Xamarin
Telerik Software Academy Mobile apps for iPhone & iPad.
Academy.telerik.com Class of , Fall 2013.
Telerik Software Academy Databases.
Telerik Software Academy ASP.NET Web Forms.
What are WinJS and WinRT, Using the APIs in JavaScript George Georgiev Telerik Software Academy academy.telerik.com Technical Trainer itgeorge.net.
JavaScript Modules and Patterns Telerik Software Academy
The True power of dynamic web pages Learning & Development Team Telerik Software Academy.
Approximate string matching Evlogi Hristov Telerik Corporation Student at Telerik Academy.
Xamarin with SQLite Telerik School Academy Xamarin apps for iOS, Android & WinPhone.
Know your Tools! Telerik Software Academy JavaScript Fundamentals.
Ivaylo Kenov Telerik Software Academy Technical Assistant.
Developing "evil" JavaScript applications Learning & Development Telerik School Academy.
The PhoneGap History Doncho Minkov Telerik Software Academy Technical Trainer
Building Rock-Solid Software Svetlin Nakov Telerik Software Academy Manager Technical Training
Adobe® Photoshop® CS6 Essentials
Cultivating Professionals for Your Company The Success Story of Telerik Svetlin Nakov, PhD Manager Technical Training Telerik Corp.
Telerik School Academy Xamarin apps for iOS, Android & WinPhone.
The way of the ViewModel and the Binding Learning & Development Telerik School Academy.
AJAX with ASP.NET MVC Telerik Software Academy
Nencho Nenchev Doroteya Agayna Telerik Software Academy Telerik Support Leads.
Installation, Sample Usage, Strings and OOP Telerik Software Academy Software Quality Assurance.
In JavaScript Learning & Development Telerik Software Academy.
Services in AngularJS Telerik Software Academy
Svetlin Nakov Telerik Software Academy Manager Technical Training
What is Roslyn and how can we use it? Telerik Academy Plus C# 6.0 and Roslyn Seminar.
Changing the default visualization of views in Xamarin.Forms Telerik School Academy Xamarin apps for iOS, Android & WinPhone.
Telerik Software Academy HTML5.
What to expect from the new IDE Telerik Academy Plus Visual Studio 2015 and ASP.NET 5.
Hristian Hristov Telerik Corporation
I have to use math? I am out of here… Telerik School Academy Unity 2D Game Development.
Monitoring Server Performance Organizing Your Support Model Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator
Automating Windows Deployment Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator
Server Roles and Features Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator
Binary, Decimal and Hexadecimal Numbers Telerik Software Academy C# Fundamentals – Part 2.
Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer
Adding UI and Audio element Telerik Academy Plus Unity 2D Game Development.
Dimo Dimov Support Lead, Kendo UI Telerik Telerik Software Academy
Presentation transcript:

Splitting JavaScript into Dependent Modules Learning & Development Telerik Software Academy

 AMD Overview  RequireJS Overview  Installation and configuration  Defining modules with RequireJS  Defining Dependent modules

 Asynchronous module definition (AMD) is a JavaScript API for defining modules  And they are loaded asynchronously  Useful in improving the performance of websites  AMD allows to create dependent modules  Modules that need other modules to work  RequireJS is a famous AMD library  Runs both in the browser and in Node.js

How to create dependent modules?

 RequireJS is a JavaScript file and module loader  It is optimized for in-browser use  Yet it can be used in other JavaScript environments, like Rhino and Node  Modular loaders improve the speed and quality of code  Inspire lazy-loading of JS files  Makes files dependent on other files

 Using RequireJS makes code more simpler and optimized  Instead of loading all the JavaScript files on the page load, load them when needed  Handles the many-scripts-hell in a web page  Load a single file/module (app.js)  And this file will require other files/modules  And these other modules will require more modules etc…

 RequireJS needs a configuration file to load other files  The config file is the single JavaScript file in the web page  RequireJS loads all code relative to a baseUrl  The url given in data-main  RequireJS assumes by default that all dependencies are scripts  Suffix ".js" is not expected

 To use RequireJS:  Fetch the require.js file:  Either download it from RequireJS web site RequireJS web siteRequireJS web site  Or with bower:  Create an app.js file to start your application  Create an HTML page and src the RequireJS file  And set the data-main attribute to the app.js file $ bower install requirejs

 The app.js is the file, that starts your application  It has dependencies to other RequreJS modules //app.js (function () { require.config({ require.config({ paths: { paths: { "jquery": "libs/jquery-2.0.3" "jquery": "libs/jquery-2.0.3" }}); require(["jquery"], function () { //write your jQuery-dependent code here //write your jQuery-dependent code here }); });}());

Live Demo

 A module is a well-scoped object that avoids polluting the global scope  It can explicitly list its dependencies and get a handle on those dependencies  Dependencies are received as arguments to the define function  The RequireJS module is an extension of the Module Pattern

 The RequireJS syntax for modules allows them to be loaded as fast as possible  Even out of order, yet evaluated in the correct dependency order  Since global variables are not created it is possible to load multiple versions of a module  There should only be one module definition in a single JavaScript file!  The modules can be grouped into optimized bundles by an optimization tool

 Defining modules is done using the define function of RequireJS:  The name of the modules is the path of the file //in file "libs/module1.js" define(function(){ //do stuff //do stuff return result; } return result; } define({ properties });  Not all modules need dependencies  If no dependencies are needed, just pass a function handler or an object

Live Demo

 Some modules use another modules  RequireJS can "request" a file to be loaded  Pass the names of the required module as an array in the define function  If any of them is not loaded, RequireJS will load it

Live Demo

форум програмиране, форум уеб дизайн курсове и уроци по програмиране, уеб дизайн – безплатно програмиране за деца – безплатни курсове и уроци безплатен SEO курс - оптимизация за търсачки уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop уроци по програмиране и уеб дизайн за ученици ASP.NET MVC курс – HTML, SQL, C#,.NET, ASP.NET MVC безплатен курс "Разработка на софтуер в cloud среда" BG Coder - онлайн състезателна система - online judge курсове и уроци по програмиране, книги – безплатно от Наков безплатен курс "Качествен програмен код" алго академия – състезателно програмиране, състезания ASP.NET курс - уеб програмиране, бази данни, C#,.NET, ASP.NET курсове и уроци по програмиране – Телерик академия курс мобилни приложения с iPhone, Android, WP7, PhoneGap free C# book, безплатна книга C#, книга Java, книга C# Николай Костов - блог за програмиране

1. Implement a ComboBox control (like a dropdown list)  The ComboBox holds a set of items (an array)  Initially only a single item, the selected item, is visible (the ComboBox is collapsed)  When the selected item is clicked, all other items are shown (the ComboBox is expanded)  If an item is clicked, it becomes the selected item and the ComboBox collapses  Each of the items in a ComboBox can contain any valid HTML code

1. (cont.) Implement a ComboBox control (like a dropdown list)  Use RequireJS and handlebars.js  jQuery is not obligatory (use it if you will)  The ComboBox should have the following usage: var people = [ { id: 1, name: "Doncho Minkov", age: 18, avatarUrl: "images/minkov.jpg" }, { id: 1, name: "Doncho Minkov", age: 18, avatarUrl: "images/minkov.jpg" }, { id: 2, name: "Georgi Georgiev", age: 19, avatarUrl: "images/joreto.jpg" }]; { id: 2, name: "Georgi Georgiev", age: 19, avatarUrl: "images/joreto.jpg" }]; var comboBox = controls.ComboBox(people); var template = $("#person-template").html(); var comboBoxHtml = comboBox.render(template); container.innerHTML = comboBoxHtml; //sample template {{name}} {{age}} {{name}} {{age}} </div>