0% found this document useful (0 votes)
48 views17 pages

Javascript and AJAX: Willem Visser RW334

This document provides an overview of JavaScript, jQuery, AngularJS, and AJAX. It discusses how JavaScript is commonly used to dynamically update HTML and for client-side validation. jQuery and AngularJS are JavaScript libraries that simplify DOM manipulation and data binding. AJAX allows for asynchronous client-server communication, improving page load times. Examples are given demonstrating basic uses of each technology.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views17 pages

Javascript and AJAX: Willem Visser RW334

This document provides an overview of JavaScript, jQuery, AngularJS, and AJAX. It discusses how JavaScript is commonly used to dynamically update HTML and for client-side validation. jQuery and AngularJS are JavaScript libraries that simplify DOM manipulation and data binding. AJAX allows for asynchronous client-server communication, improving page load times. Examples are given demonstrating basic uses of each technology.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 17

Javascript and AJAX

Willem Visser
RW334

Overview

Javascript
jQuery
AngularJS
AJAX

Javascript
Scripting language with dynamic typing
Most commonly used for executing inside the
browser to interact with the Document
Object Model (DOM)
Can dynamically update static old HTML
Client side validation

Popularity faded until AJAX came along now


it is the basis of many web development
frameworks and even server side (NodeJS)
Libraries such as jQuery and AnagularJS

Javascript Example
http://www.w3schools.com/js/tryit.asp?filename=tryjs_ev
ents
<html>
<head>
<script type="text/javascript">
function displayDate() {

document.getElementById("demo").innerHTML=Date();
}
</script>
</head>
<body>
<h1>My First Web Page</h1>
<p id="demo">This is a paragraph.</p>
<button type="button" onclick="displayDate()">Display
Date</button>
</body>
</html>

jQuery
Nothing more than a Javascript
library
Makes it much simpler to use JS to
manipulate web-related information:
html, events, animation and AJAX

jQuery Example

http://www.w3schools.com/Jquery/tryit.asp?
filename=tryjquery_hide
<html>
<head>
<script
src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("p").click(function(){$(this).hide();});
});
</script>
</head>
<body>
<p>If you click on me, I will disappear.</p>
<p>Click me away!</p>
<p>Click me too!</p>
</body>
</html>

AngularJS
Open Source Javascript framework
Maintained by Google and community

Model-View-Controller philosophy that tries


to improve decoupling and ease of testing
Two-way data binding
View and Model
Changes to either triggers the other to change

Includes templates as well


JS <<< jQuery <<< AngularJS

AngularJS Example

http://viralpatel.net/blogs/angularjs-introduction-hello-worldtutorial/
<html ng-app>
<head>
<title>Hello World, AngularJS</title>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js
"></script>
</head>
<body>
Write some text:
<input type="text" ng-model=thetext" />
<h1>Hello {{ thetext }}</h1>
</body>
</html>

AJAX
Asynchronous Javascript and XML
Client sends asynchronous request to server
Client can continue

Server responds with data or error


Client handles success by displaying data
Client handles failure
Only part of the page gets refreshed!

JS and AJAX
http://html.net/tutorials/javascript/lesson18.
php
<html>
<body>
<h1>AJAX Calls - XML Response</h1>
<div id="test>
<h2>Click the button to get a list of programming
languages</h2>
<input type="button" value="Click Me!"
<languages>
onclick="loadXML('text.xml')" />
<language>PHP</language>
</div>
<language>Ruby</language>
<script type="text/javascript">
<language>C#</language>
var myRequest;
<language>JavaScript</language>
function loadXML(url) {
</languages>
myRequest = new XMLHttpRequest();
myRequest.open("GET", url, true);
myRequest.send(null);
myRequest.onreadystatechange = getData;
}
function getData()
</script>
</body>

JS and AJAX
http://html.net/tutorials/javascript/lesson18.
php
function getData() {
var myDiv = document.getElementById("test");
if (myRequest.readyState ===4 && myRequest.status ===
200) {
var languages =
myRequest.responseXML.getElementsByTagName("language");
for (var i = 0; i < languages.length; i++) {
var paragraph = document.createElement("p");
myDiv.appendChild(paragraph);
paragraph.appendChild(document.createTextNode(
languages[i].firstChild.data));
}
}
}
To get this example to run: Start a webserver with
python -m SimpleHTTPServer
in the directory where the html and xml file is, open a browser to the IP indicated
and click on the html file in the listing

jQuery and AJAX (1)


<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery1.7.min.js"></script>
</head>
<body>
<p><a href="#">Click here to fetch HTML content</a></p>
<div id="result>
</div>
<script type="text/javascript>
$(document).ready(function() {
$('a').click(function() {
$('#result').load('content.html #content);
});
});
<div id ="content"> some content </div>
</script>
<div id ="content1"> some content 1 </div>
</body>
</html>

jQuery and AJAX (2)


$(document).ready(function() {
function processData(data) {
var resultStr = ";
var items = $(data).find('language');
$(items).each(function(i) {
resultStr += $(this).text() + '<br />;
$('#result').html(resultStr);
});
}
$('a').click(function() { $.get(text.xml,
processData); });
});

jQuery and AJAX (3)


$(document).ready(function() {
function processData(data) { }
function errorAlert(e, jqxhr) {
alert("Your request was not successful: "
+ jqxhr);
}
$('a').click(function() {
$.ajax({type: "GET, cache: false, url:
text.xml,
dataType: "xml, contentType:
"text/html,
success: processData,
error: errorAlert

AngularJS and AJAX (1)


<head>
<script
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.
16/angular.min.js"></script>
</head>
<body ng-app="myapp>
<div ng-controller="MyController" >
<button ng-click="myData.doClick(item,
$event)">Send AJAX
</button>
<br/>
<div ng-repeat="item in myData.languages>
{{item.language}} <br>
</div>
</div>

AngularJS and AJAX (1)


angular.module("myapp", [])
.controller("MyController", function($scope, $http) {
$scope.myData = {};
$scope.myData.doClick = function(item, event) {
var responsePromise = $http.get("text.json");
responsePromise.success(function(data, status,
headers,
config) {
$scope.myData.languages = data;
});
responsePromise.error(function(data, status,
headers, config) {
alert("AJAX failed!");
});
}
}

AngularJS Main Features


Directives
<div ng-repeat=actor in movie>

2- way Data binding


View and Model via $scope
Note all still client side though, the server doesnt get updated until you POST
something
View will get updated the moment an AJAX call returns and is handled
correctly

Filtering
Very powerful
Useful for Search features

Single Page Web Applications


Just one HTML page but everything changes on it
ng-view
routes

You might also like