extc Web Developer Rapid Web Application Development and Ajax Framework Using Ajax

Size: px
Start display at page:

Download "extc Web Developer Rapid Web Application Development and Ajax Framework Using Ajax"

Transcription

1 extc Web Developer Rapid Web Application Development and Ajax Framework Version Using Ajax Background extc Web Developer (EWD) is a rapid application development environment for building and maintaining web applications, running under a number of environments including PHP, Java Server Pages (JSP) and Caché Server Pages (CSP).. The JSP and PHP implementations rely on, and make use of the MGWSI gateway respectively, allowing JSP and PHP pages to communicate with the Caché or GT.M databases. EWD includes advanced functionality that allows you to make use of the Asynchronous Javascript & XML (Ajax) techniques that form the basis of the Web 2.0 generation of web applications. This functionality is known as the EWD Ajax Framework. EWD's Ajax capabilities are extremely easy to use, yet they allow you to design your pages using some of the most complex and sophisticated Ajax techniques that are available anywhere. Once you begin to explore EWD's Ajax Framework, you'll almost certainly begin to move away from the more tradtional request/response HTTP-based web application techniques and start to exploit the very slick and sophisticated techniques that Ajax provides. Your web applications will never look the same again! This document is a reference guide to using EWD's Ajax framework. Pre-requisites This guide assumes that you have read the extc Web Developer Overview, the Installation Guide and Tutorial documents. You should also have the main EWD API Guide at hand. 1

2 The EWD Ajax Framework The underlying concept of EWD's core Ajax framework is very simple. When a specified event occurs within the browser (eg an onclick event within a <div> tag that contains some text), a request is made to an EWD page whose content replaces the innerhtml property of a target tag within your page. The target tag is uniquely identified by its id attribute this is known as the targetid. The EWD page that you request is a special type of page, known as a page fragment. The contents of the page fragment will replace whatever markup was previously inside the target tag. Page Fragments Unlike standard EWD pages, a page fragment is not a complete page of HTML: it does not contain <html>, <head> or <body> tags. It just contains the HTML and any other markup that will be used to replace the innerhtml of the target tag. However, page fragments othewise behave just like any other EWD page. They can have a pre-page script and can make use of templates, <ewd:include> blocks, variables (session and local), and custom tags (both EWD's built-in custom tags and your own). This is what makes EWD's Ajax framework so flexible and powerful. The figure below summarises how the EWD Ajax framework works. Using this technique, it would be quite possible to write an entire application that used a single container page and lots of page fragments that modified its DOM. 2

3 An EWD Ajax page fragment must be declared by adding the attribute pagetype= ajax to its <ewd:config> tag. Here's an example of a very simple Ajax Page Fragment. <ewd:config pagetype= ajax applytemplate= false > <div>hello Ajax World!</div> You would save this just like any other EWD page in your application, eg as myajaxexample.ewd. Defining the Target Tag Defining the target tag whose innerhtml will be replaced by the EWD Ajax page fragment is very simple: just add an id attribute to it with a unique value. For example: <div id= mytag >This is going to get replaced!</div> The idea of EWD's Ajax functionality is that anything inside this <div> tag (defined in DHTML terms as its innerhtml property) will get replaced by the contents of a page fragment. So, in this case, the text This is going to get replaced! will disappear and be replaced with the incoming markup from the page fragment. Defining the Ajax Event Now that we have created an Ajax page fragment and defined a target tag, we can now define the Ajax event that will make it all happen. An Ajax event is triggered by any event that can be handled within the browser. Common events that are used to trigger Ajax events are: an onclick event triggered by an <input type= button > tag an onclick event triggered within a <div> or any other tag that supports this event. an onchange event within an <input type= text > tag an onmouseover event within any tag that supports this event an onkeydown event within any tag that supports this event. Having decided on the event that will trigger the Ajax process, just add the following attributes to the tag that will include the event handler, eg: event: specify the event handler you want to use ajaxpage: specify the name of the page fragment you want to request when the event occurs 3

4 targetid: specify the id of the target tag whose innerhtml is to be replaced by the page fragment. For example: <input type= button name= button1 value= Click me event= onclick ajaxpage= myajaxexample targetid= mytag > This will create a button within your web page. When you click it, the innerhtml of the tag whose id is mytag will be replaced with the contents of the page fragment named myajaxexample. 4

5 Simple Ajax Example So let's put this together into a simple working example. Here's your main page: <ewd:config applytemplate= false > <html> <head> <title>ajax Example</title> </head> <body> <input type= button name= button1 value= Click me event= onclick ajaxpage= myajaxexample targetid= mytag > <hr /> <div id= mytag >This text will be replaced when you click the button</div> <hr /> </body> </html> Save this page, eg as first.ewd. This main page is known as a container page, since it will act as a container for one or more Ajax page fragments. The contents of the page fragment named myajaxexample.ewd is as follows: <ewd:config pagetype= ajax applytemplate= false > <div>hello Ajax World!</div> Compile these two pages and run the main page, eg: When you click the button, you should see the text change. What has happened is that the original <div> tag which was as follows: will now contain: <div id= mytag >This text will be replaced when you click the button</div> <div id= mytag ><div>hello Ajax World!</div></div> Note that if you use the browser's View/Source mechanism to view the page after you click the button, it will still show the original page exactly as it was loaded, not how it now looks after the Ajax event. 5

6 Complex Ajax Events By extending this simple example, you'll quickly be in a position to begin implementing some of the most sophisticated Ajax effects imaginable. The important things to realise are: the page fragment can be as complex as you like. Evenrything it contains will replace what's currently inside the target tag. The effect the user will see is that just one section of the web page will change. The original page remains in place in the browser. Ajax therefore moves you away from the traditional web approach where the entire page was swapped for another. With Ajax you can begin to move into a much more client/server oriented look and feel. A page fragment can have a pre-page script which fetches data and creates session variables and/or arrays which the page fragment can then process. The page fragment can therefore be completely data-driven. A page fragment can make use of templates and/or ewd:include blocks and also custom tags. A page fragment can include further Ajax triggers and target tags, so you can build up a complex page bit by bit as successive fragments are added to the original container page, each delivering their own new events and targets. Then, by refiring the first Ajax event, all those later page fragments can be made to disappear immediately. Ajax can therefore drastically simplify page navigation logic that would otherwise be nightmarishly complex to implement by traditional web techniques. Timed Ajax Events In addition to Ajax Events that are triggered by a user creating an in-browser event, EWD also allows you to define one or more Ajax events that will be automatically triggered each time a specified time period has elapsed. This is useful for system monitoring applications, but has applications elsewhere too. To define a timed Ajax event, just use: event= ontimer time= the number of seconds between each Ajax event firing. For example: <div id="timer1id" ajaxpage="page4j" event="ontimer" time="5">this will be replaced every 5 seconds</div> 6

7 Passing name/value pairs into the Ajax page fragment. You can use the standard EWD technique for adding name/value pairs to the request for the Ajax page fragment, for example: ajaxpage= mypage.ewd?a=1&b=2 In this example, by the time the prepage script of mypage.ewd has been invoked, session variables named a and b will be available with values of 1 and 2 respectively. You can also pass session variables and local in-page variables, eg: ajaxpage= mypage.ewd?a=#svar1&b=$lvar2 In this example, the current value of the session variable named svar1 will be passed as name a, and the value of the local variable $lvar2 will be passed as name b. If the value of #svar1 was abc and the value of $lvar2 was 23, then by the time the prepage script of mypage.ewd has been invoked, session variables named a and b will be available with values of abc and 23 respectively. Additionally, you can pass Javascript values from your container page, eg ajaxpage= mypage.ewd?a=document.getelementbyid('abc').value&b=javascript.this.name Note that any value that commences document. is automatically assumed by EWD to be a Javascript object reference. Any other Javascipt reference must be prefixed javascript. in order to instruct the compiler to treat the value as a Javascript reference. In this example, a and b will again be automatically instantiated as session variables when the Ajax event occurs. Your name/value pair list can include any or all of the above types. For example: <div id="timer1id" ajaxpage="page4j.ewd?h=javascript.k&a=1" event="ontimer" time="5">this will be replaced every 5 seconds</div> In this example, the value of a Javascript variable named k will be passed to the Ajax page and instantiated as a session variable named h, whilst a session variable named a will be created with a value of 1. Note that when passing name/value pairs, you should add the page extension (.ewd) to the page reference. This extension is not needed if you aren't passing any name/value pairs to the page fragment. 7

8 Submitting forms via Ajax Normally, HTML forms are handled by submitting them (via an HTTP POST), the result of which is a response page of HTML which either replaces the current page or a specified frame or window target. EWD provides a mechanism for submitting a form via Ajax, in such a way that the response is an EWD page fragment which replaces the contents of a target tag in the container page. Simply modify the <input type= submit > button as follows: <form method= post action= ewd >...etc <input type= submit name= mysub value= Save action= savedata^myrou nextpage= mypage2 ajax= true targetid= mytag > </form> You can still use an action script to validate the submitted form field values: the action script logic is just the same as for standard EWD forms. The nextpage in this example is a page fragment, denoted by the attribute ajax= true, and its content will replace the innerhtml of the tag with id= mytag. Note that EWD page fragments can contain <form> tags and associated form fields (<input>, <select>, <textarea>), but if so, the form should be submitted via Ajax rather than a standard HTTP POST. Also, be careful not to deliver a <form> tag via an Ajax page fragment into a container page tag so that it nests inside another <form> tag. Browsers do not cope with nested <form> tags! Note also that the Ajax form submit mechanism should only be used with forms that are contained within a page fragment. Forms that are defined within a container page can use the Ajax submit mechanism if necessary, but they are unable to alert the user if validation errors occur within the action script. Javascript functions within Ajax Page Fragments An EWD Ajax page fragment can include <script language= javascript> tags that contain one or more Javascript functions. These will be loaded and activated into the container page when the Ajax event occurs. Invoking Ajax Events from within Javascript functions In order to support more complex situations, and to allow several Ajax events to fire one after the other, the EWD Ajax framework also allows you to trigger Ajax events from within Javascrpt functions. Simply use a pseudo-function named ewd.ajaxrequest. 8

9 This pseudo-function is expanded by EWD's compiler, but provides you with a very simple interface. The function's parameters are as follows: ewd.ajaxrequest(ajaxpagename,targetid,namevaluepairlist) ; The name/value pair list is optional, but the page name and targetid must be defined. For example: <script language= javascript > function mytrigger1() { ewd.ajaxrequest( mypage, myid1 ) ; function mytrigger2(myno) { var target = myid + myno ; ewd.ajaxrequest( mypage,target) ; function mytrigger3() { ewd.ajaxrequest( mypage1, myid1 ) ; ewd.ajaxrequest( mypage2, myid2, a=123 ) ; ewd.ajaxrequest( mypage3, myid3 ) ; function mytrigger4(myno) { if (myno == 1 ) { ewd.ajaxrequest( mypage1, myid1 ) ; else { ewd.ajaxrequest( mypage2, myid2 ) ; function mytrigger5() { var nvp = abc=<?= #svar1?> ; ewd.ajaxrequest( mypage, myid1,nvp) ; </script> In this example, the Javascript function mytrigger1() can be called to invoke an Ajax request for page fragment mypage.ewd to replace the innerhtml of the target tag with id= myid1. The second function mytrigger2() demonstrates that the target ID can be variable. The third function mytrigger3() demonstrates how multiple Ajax events can be fired from within a single Javascript function. You can imagine how powerful this technique can be! Note the second Ajax request passes a name/value pair (a=123) into the ajax page. Function 4 demonstrates how you can conditionalise your Ajax events. Note that whilst the targetid can be variable, the page name must be a pre-defined literal value. 9

10 This is due to EWD's tight control over page security. See later for mechanisms for redirecting to different Ajax page fragments under programmatic control. Function 5 demonstrates how a name/value pair can be passed to the Ajax page fragment using a session variable. In all five cases, these functions can be triggered via standard event handers, eg: <input type= button name= button1 value= Click 1 onclick= mytrigger1() > <input type= button name= button2 value= Click 2 onclick= mytrigger2('12') > <input type= button name= button3 value= Click 3 onclick= mytrigger3() > <input type= button name= button4 value= Click 4 onclick= mytrigger4( 1 ) > <input type= button name= button5 value= Click 5 onclick= mytrigger5() > Note that if you pass name/value pairs into the ewd.ajaxrequest() pseudo function, EWD is unable to automatically instantiate them as session variables when the Ajax event occurs. They will, however, be available as request variables, so, in the prepage script of your Ajax page fragment, you can get their values using the getrequestvalue () method For example, to process the name/value pair sent via the mytrigger5() function, your prepage Script might look like the following: myscript(sessid) new abc set abc=$$getrequestvalue^%zewdapi( abc,sessid) ;...etc QUIT The <ewd:ajaxonload> Event Handler Yet more sophistication can be added to your Ajax events by using a pseudo onload event hander in your Ajax page fragments. This allows you define a block of Javascript code that will be invoked after the page fragment content has replaced the target tag in the container page. Note that the asynchronous nature of Ajax events means that anything you invoke after an ewd.ajaxrequest function call will fire immediately rather than after the Ajax request has completed. If you want something to occur immediately after the Ajax request has completed, you must use the <ewd:ajaxonload> mechanism. Using this facility is very straightforward. Simply add the <ewd:ajaxonload> tag to your Ajax page fragment and add any Javascript that you wish to be invoked, for example: 10

11 <ewd:config pagetype= ajax applytemplate= false > <ewd:ajaxonload> alert( ajax event completed! ) ; </ewd:ajaxonload> <div>hello Ajax World!</div> Although you can place the <ewd:ajaxonload> tag anywhere within your Ajax page fragment, by convention you should put it immediately after the <ewd:config> tag. The <ewd:ajaxonload> tag is extremely powerful because you can not only access session variables within the Javascript code, but you can also make calls to the ewd.ajaxrequest() function. For example: <ewd:config pagetype= ajax applytemplate= false > <ewd:ajaxonload> var myvar = <?= #svar1?> ; var nvp = abc= + myvar ; ewd.ajaxrequest( mypage2, x123,nvp) ; </ewd:ajaxonload> <div>hello Ajax World!</div> In this example, as soon as this page fragment is loaded, it will trigger another Ajax event which will also pass the value of a session variable back into the next Ajax page fragment. Using this technique, you can chain Ajax events, each one triggering a subsequent Ajax event in a controlled sequence. Breaking down Complex Pages By using EWD's Ajax features, you can break down what would have previously been very complex pages into small manageable chunks. The main container page can initially be nothing more than an empty framework of <div> tags that are populated one by one by a sequence of Ajax events. Each page fragment can bring with it the markup that describes in detail a section of the overall web page, including other Ajax triggers. In this way you can break down a page into multiple simple page fragments that each perform simple functions, but whose overall effect is one of great visual complexity and sophistication. You can also, if required, assign different functions and page fragments to members of your development team. 11

12 Debugging Ajax Events There are four main techniques you should use when debugging your Ajax events. Add some tracing code into the pre-page script of the Ajax page fragment. This will help you determine whether or not the event fired at all and whether EWD managed to run the page fragment. You can also determine whether or not any additional name/value pairs were successfully transferred into Cache. In the tag where you are triggering the Ajax event, add the attribute trace= alert, eg: <input type= button name= button1 value= Click me event= onclick ajaxpage= myajaxexample targetid= mytag trace= alert > When the page fragment's contents are delivered to the browser, an alert will pop up containing the raw markup that has been generated by the page fragment. In the tag where you are triggering the Ajax event, add the attribute trace= window, eg: <input type= button name= button1 value= Click me event= onclick ajaxpage= myajaxexample targetid= mytag trace= window > This technique is useful if the content being delivered by the page fragment is very large and is beyond the scope of an alert to display. If you use this mode, EWD compiles in a textarea field into your page, and copies the raw page fragment contents into it. If none of the above mechanisms are suitable, then you can, if necessary, modify the ewdscripts.js file. Make sure you're editing the version that is actually loaded into the user's browser, and look for the lines: function ajaxreplacecontent(http_request,id,traceflag) { if (http_request.readystate == 4) { if (http_request.status == 200) { var text = http_request.responsetext ; The last line is the point at which the raw page fragment response content is available in the variable text. You can modify the ewdscripts.js file to display this text. The simplest way is to add an alert, eg: function ajaxreplacecontent(http_request,id,traceflag) { 12

13 if (http_request.readystate == 4) { if (http_request.status == 200) { var text = http_request.responsetext ; alert(text) ; This will cause an alert window to pop up whenever a page fragment returns its contents to the browser. By modifying your logic, you can, for example, conditionalise the generation of the alert to occur only when the text variable contains certain strings of characters. Note: if you use this approach and modify ewdscripts.js, then you will need to force the browser to refresh its cached version of the js file and use your new edited version. Hitting the browser refresh button is usually sufficient. Also note that when you recompile a complete EWD application (using compileall^%zewdapi), the ewdscripts.js file is regenerated, so you may want to save a copy containing any of your debugging logic before recompiling. Conclusions Despite such a simple framework, EWD's Ajax functionality allows you to add almost unlimited power and sophistication to your web applications, yet it is incredibly easy to use and maintain. This functionality makes EWD one of the most powerful Ajax and Web 2.0 development toolsets. We hope you enjoy using the Ajax technology within EWD! 13

Developing Ajax Applications using EWD and Python. Tutorial: Part 2

Developing Ajax Applications using EWD and Python. Tutorial: Part 2 Developing Ajax Applications using EWD and Python Tutorial: Part 2 Chapter 1: A Logon Form Introduction This second part of our tutorial on developing Ajax applications using EWD and Python will carry

More information

EWD Custom Tag Development. Built-in Custom Tags for defining and manipulating Javascript

EWD Custom Tag Development. Built-in Custom Tags for defining and manipulating Javascript EWD Custom Tag Development Built-in Custom Tags for defining and manipulating Javascript Build 790 Introduction A number of very powerful custom tags have been added to EWD. Unlike many of the built-in

More information

Controlled Assessment Task. Question 1 - Describe how this HTML code produces the form displayed in the browser.

Controlled Assessment Task. Question 1 - Describe how this HTML code produces the form displayed in the browser. Controlled Assessment Task Question 1 - Describe how this HTML code produces the form displayed in the browser. The form s code is displayed in the tags; this creates the object which is the visible

More information

Client Side JavaScript and AJAX

Client Side JavaScript and AJAX Client Side JavaScript and AJAX Client side javascript is JavaScript that runs in the browsers of people using your site. So far all the JavaScript code we've written runs on our node.js server. This is

More information

Session 16. JavaScript Part 1. Reading

Session 16. JavaScript Part 1. Reading Session 16 JavaScript Part 1 1 Reading Reading Wikipedia en.wikipedia.org/wiki/javascript / p W3C www.w3.org/tr/rec-html40/interact/scripts.html Web Developers Notes www.webdevelopersnotes.com/tutorials/javascript/

More information

Client vs Server Scripting

Client vs Server Scripting Client vs Server Scripting PHP is a server side scripting method. Why might server side scripting not be a good idea? What is a solution? We could try having the user download scripts that run on their

More information

AJAX Programming Overview. Introduction. Overview

AJAX Programming Overview. Introduction. Overview AJAX Programming Overview Introduction Overview In the world of Web programming, AJAX stands for Asynchronous JavaScript and XML, which is a technique for developing more efficient interactive Web applications.

More information

JAVASCRIPT - CREATING A TOC

JAVASCRIPT - CREATING A TOC JAVASCRIPT - CREATING A TOC Problem specification - Adding a Table of Contents. The aim is to be able to show a complete novice to HTML, how to add a Table of Contents (TOC) to a page inside a pair of

More information

JavaScript CS 4640 Programming Languages for Web Applications

JavaScript CS 4640 Programming Languages for Web Applications JavaScript CS 4640 Programming Languages for Web Applications 1 How HTML, CSS, and JS Fit Together {css} javascript() Content layer The HTML gives the page structure and adds semantics Presentation

More information

JavaScript is described in detail in many books on the subject, and there is excellent tutorial material at

JavaScript is described in detail in many books on the subject, and there is excellent tutorial material at JavaScript (last updated April 15, 2013: LSS) JavaScript is a scripting language, specifically for use on web pages. It runs within the browser (that is to say, it is a client- side scripting language),

More information

CS Final Exam Review Suggestions - Spring 2018

CS Final Exam Review Suggestions - Spring 2018 CS 328 - Final Exam Review Suggestions p. 1 CS 328 - Final Exam Review Suggestions - Spring 2018 last modified: 2018-05-03 Based on suggestions from Prof. Deb Pires from UCLA: Because of the research-supported

More information

Templates and Databinding. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Templates and Databinding. SWE 432, Fall 2017 Design and Implementation of Software for the Web Templates and Databinding SWE 432, Fall 2017 Design and Implementation of Software for the Web Today What are templates? What are frontend components? How can I use these with React? 2 What s wrong with

More information

JavaScript CS 4640 Programming Languages for Web Applications

JavaScript CS 4640 Programming Languages for Web Applications JavaScript CS 4640 Programming Languages for Web Applications 1 How HTML, CSS, and JS Fit Together {css} javascript() Content layer The HTML gives the page structure and adds semantics Presentation

More information

CSC 405 Computer Security. Web Security

CSC 405 Computer Security. Web Security CSC 405 Computer Security Web Security Alexandros Kapravelos akaprav@ncsu.edu (Derived from slides by Giovanni Vigna and Adam Doupe) 1 The XMLHttpRequest Object Microsoft developers working on Outlook

More information

Web Programming and Design. MPT Junior Cycle Tutor: Tamara Demonstrators: Aaron, Marion, Hugh

Web Programming and Design. MPT Junior Cycle Tutor: Tamara Demonstrators: Aaron, Marion, Hugh Web Programming and Design MPT Junior Cycle Tutor: Tamara Demonstrators: Aaron, Marion, Hugh Plan for the next 5 weeks: Introduction to HTML tags, creating our template file Introduction to CSS and style

More information

Such JavaScript Very Wow

Such JavaScript Very Wow Such JavaScript Very Wow Lecture 9 CGS 3066 Fall 2016 October 20, 2016 JavaScript Numbers JavaScript numbers can be written with, or without decimals. Extra large or extra small numbers can be written

More information

CITS3403 Agile Web Development Semester 1, 2018

CITS3403 Agile Web Development Semester 1, 2018 Javascript Event Handling CITS3403 Agile Web Development Semester 1, 2018 Event Driven Programming Event driven programming or event based programming programming paradigm in which the flow of the program

More information

Rico AjaxEngine Tutorial

Rico AjaxEngine Tutorial The Rico JavaScript library provides a single JavaScript object, AjaxEngine, for adding Ajax to any HTML page. What is Ajax? Widkipedia has the following definition for Ajax: Traditional web applications

More information

Ajax- XMLHttpResponse. Returns a value such as ArrayBuffer, Blob, Document, JavaScript object, or a DOMString, based on the value of

Ajax- XMLHttpResponse. Returns a value such as ArrayBuffer, Blob, Document, JavaScript object, or a DOMString, based on the value of Ajax- XMLHttpResponse XMLHttpResponse - A Read only field Returns a value such as ArrayBuffer, Blob, Document, JavaScript object, or a DOMString, based on the value of XMLHttpRequest.responseType. This

More information

Quick.JS Documentation

Quick.JS Documentation Quick.JS Documentation Release v0.6.1-beta Michael Krause Jul 22, 2017 Contents 1 Installing and Setting Up 1 1.1 Installation................................................ 1 1.2 Setup...................................................

More information

Session 6. JavaScript Part 1. Reading

Session 6. JavaScript Part 1. Reading Session 6 JavaScript Part 1 Reading Reading Wikipedia en.wikipedia.org/wiki/javascript Web Developers Notes www.webdevelopersnotes.com/tutorials/javascript/ JavaScript Debugging www.w3schools.com/js/js_debugging.asp

More information

EVENT-DRIVEN PROGRAMMING

EVENT-DRIVEN PROGRAMMING LESSON 13 EVENT-DRIVEN PROGRAMMING This lesson shows how to package JavaScript code into self-defined functions. The code in a function is not executed until the function is called upon by name. This is

More information

this is a cat CS50 Quiz 1 Review

this is a cat CS50 Quiz 1 Review CS50 Quiz 1 Review this is a cat CS50 Quiz 1 Review JavaScript CS50 Quiz 1 Review first, recall from zamyla Remember, PHP is run server-side. The HTML output of this PHP code is sent to the user. Server

More information

Photo from DOM

Photo from  DOM Photo from http://www.flickr.com/photos/emraya/2861149369/ DOM 2 DOM When a browser reads an HTML file, it must interpret the file and render it onscreen. This process is sophisticated. Fetch Parse Flow

More information

Manual Html A Href Onclick Submit Form

Manual Html A Href Onclick Submit Form Manual Html A Href Onclick Submit Form JS HTML DOM. DOM Intro DOM Methods HTML form validation can be done by a JavaScript. If a form field _input type="submit" value="submit" /form_. As shown in a previous

More information

Introduction to AngularJS

Introduction to AngularJS CHAPTER 1 Introduction to AngularJS Google s AngularJS is an all-inclusive JavaScript model-view-controller (MVC) framework that makes it very easy to quickly build applications that run well on any desktop

More information

Abstract. 1. Introduction. 2. AJAX overview

Abstract. 1. Introduction. 2. AJAX overview Asynchronous JavaScript Technology and XML (AJAX) Chrisina Draganova Department of Computing, Communication Technology and Mathematics London Metropolitan University 100 Minories, London EC3 1JY c.draganova@londonmet.ac.uk

More information

AJAX: Asynchronous Event Handling Sunnie Chung

AJAX: Asynchronous Event Handling Sunnie Chung AJAX: Asynchronous Event Handling Sunnie Chung http://adaptivepath.org/ideas/ajax-new-approach-web-applications/ http://stackoverflow.com/questions/598436/does-an-asynchronous-call-always-create-call-a-new-thread

More information

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments.

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments. Web Development WEB101: Web Development Fundamentals using HTML, CSS and JavaScript $2,495.00 5 Days Replay Class Recordings included with this course Upcoming Dates Course Description This 5-day instructor-led

More information

(Refer Slide Time: 01:40)

(Refer Slide Time: 01:40) Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #25 Javascript Part I Today will be talking about a language

More information

INTRODUCTION TO JAVASCRIPT

INTRODUCTION TO JAVASCRIPT INTRODUCTION TO JAVASCRIPT Overview This course is designed to accommodate website designers who have some experience in building web pages. Lessons familiarize students with the ins and outs of basic

More information

CS WEB TECHNOLOGY

CS WEB TECHNOLOGY CS1019 - WEB TECHNOLOGY UNIT 1 INTRODUCTION 9 Internet Principles Basic Web Concepts Client/Server model retrieving data from Internet HTM and Scripting Languages Standard Generalized Mark up languages

More information

At the Forge Dojo Events and Ajax Reuven M. Lerner Abstract The quality of your Dojo depends upon your connections. Last month, we began looking at Dojo, one of the most popular open-source JavaScript

More information

"Web Age Speaks!" Webinar Series

Web Age Speaks! Webinar Series "Web Age Speaks!" Webinar Series Java EE Patterns Revisited WebAgeSolutions.com 1 Introduction Bibhas Bhattacharya CTO bibhas@webagesolutions.com Web Age Solutions Premier provider of Java & Java EE training

More information

Part of this connection identifies how the response can / should be provided to the client code via the use of a callback routine.

Part of this connection identifies how the response can / should be provided to the client code via the use of a callback routine. What is AJAX? In one sense, AJAX is simply an acronym for Asynchronous JavaScript And XML In another, it is a protocol for sending requests from a client (web page) to a server, and how the information

More information

shortcut Tap into learning NOW! Visit for a complete list of Short Cuts. Your Short Cut to Knowledge

shortcut Tap into learning NOW! Visit  for a complete list of Short Cuts. Your Short Cut to Knowledge shortcut Your Short Cut to Knowledge The following is an excerpt from a Short Cut published by one of the Pearson Education imprints. Short Cuts are short, concise, PDF documents designed specifically

More information

Sections and Articles

Sections and Articles Advanced PHP Framework Codeigniter Modules HTML Topics Introduction to HTML5 Laying out a Page with HTML5 Page Structure- New HTML5 Structural Tags- Page Simplification HTML5 - How We Got Here 1.The Problems

More information

GRITS AJAX & GWT. Trey Roby. GRITS 5/14/09 Roby - 1

GRITS AJAX & GWT. Trey Roby. GRITS 5/14/09 Roby - 1 AJAX & GWT Trey Roby GRITS 5/14/09 Roby - 1 1 Change The Web is Changing Things we never imagined Central to people s lives Great Opportunity GRITS 5/14/09 Roby - 2 2 A Very Brief History of Computing

More information

CIS 3308 Logon Homework

CIS 3308 Logon Homework CIS 3308 Logon Homework Lab Overview In this lab, you shall enhance your web application so that it provides logon and logoff functionality and a profile page that is only available to logged-on users.

More information

Manual Html A Href Onclick Submit Button

Manual Html A Href Onclick Submit Button Manual Html A Href Onclick Submit Button When you submit the form via clicking the radio button, it inserts properly into Doing a manual refresh (F5 or refresh button) will then display the new updated

More information

DC71 INTERNET APPLICATIONS JUNE 2013

DC71 INTERNET APPLICATIONS JUNE 2013 Q 2 (a) With an example show text formatting in HTML. The bold text tag is : This will be in bold. If you want italics, use the tag, as follows: This will be in italics. Finally, for

More information

2/6/2012. Rich Internet Applications. What is Ajax? Defining AJAX. Asynchronous JavaScript and XML Term coined in 2005 by Jesse James Garrett

2/6/2012. Rich Internet Applications. What is Ajax? Defining AJAX. Asynchronous JavaScript and XML Term coined in 2005 by Jesse James Garrett What is Ajax? Asynchronous JavaScript and XML Term coined in 2005 by Jesse James Garrett http://www.adaptivepath.com/ideas/essays/archives /000385.php Ajax isn t really new, and isn t a single technology

More information

Implementing XForms using interactive XSLT 3.0

Implementing XForms using interactive XSLT 3.0 Implementing XForms using interactive XSLT 3.0 O'Neil Delpratt Saxonica Debbie Lockett Saxonica Abstract In this paper, we discuss our experiences in developing

More information

CE212 Web Application Programming Part 2

CE212 Web Application Programming Part 2 CE212 Web Application Programming Part 2 22/01/2018 CE212 Part 2 1 JavaScript Event-Handlers 1 JavaScript may be invoked to handle input events on HTML pages, e.g.

More information

JavaServer Faces Technology, AJAX, and Portlets: It s Easy if You Know How!

JavaServer Faces Technology, AJAX, and Portlets: It s Easy if You Know How! TS-6824 JavaServer Faces Technology, AJAX, and Portlets: It s Easy if You Know How! Brendan Murray Software Architect IBM http://www.ibm.com 2007 JavaOne SM Conference Session TS-6824 Goal Why am I here?

More information

Introduction to JavaScript p. 1 JavaScript Myths p. 2 Versions of JavaScript p. 2 Client-Side JavaScript p. 3 JavaScript in Other Contexts p.

Introduction to JavaScript p. 1 JavaScript Myths p. 2 Versions of JavaScript p. 2 Client-Side JavaScript p. 3 JavaScript in Other Contexts p. Preface p. xiii Introduction to JavaScript p. 1 JavaScript Myths p. 2 Versions of JavaScript p. 2 Client-Side JavaScript p. 3 JavaScript in Other Contexts p. 5 Client-Side JavaScript: Executable Content

More information

STARCOUNTER. Technical Overview

STARCOUNTER. Technical Overview STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation

More information

Pearson Education Limited Edinburgh Gate Harlow Essex CM20 2JE England and Associated Companies throughout the world

Pearson Education Limited Edinburgh Gate Harlow Essex CM20 2JE England and Associated Companies throughout the world Pearson Education Limited Edinburgh Gate Harlow Essex CM20 2JE England and Associated Companies throughout the world Visit us on the World Wide Web at: www.pearsoned.co.uk Pearson Education Limited 2014

More information

1 Introduction. 2 Web Architecture

1 Introduction. 2 Web Architecture 1 Introduction This document serves two purposes. The first section provides a high level overview of how the different pieces of technology in web applications relate to each other, and how they relate

More information

ORB Education Quality Teaching Resources

ORB Education Quality Teaching Resources JavaScript is one of the programming languages that make things happen in a web page. It is a fantastic way for students to get to grips with some of the basics of programming, whilst opening the door

More information

COMP519 Web Programming Lecture 16: JavaScript (Part 7) Handouts

COMP519 Web Programming Lecture 16: JavaScript (Part 7) Handouts COMP519 Web Programming Lecture 16: JavaScript (Part 7) Handouts Ullrich Hustadt Department of Computer Science School of Electrical Engineering, Electronics, and Computer Science University of Liverpool

More information

Place User-Defined Functions in the HEAD Section

Place User-Defined Functions in the HEAD Section JavaScript Functions Notes (Modified from: w3schools.com) A function is a block of code that will be executed when "someone" calls it. In JavaScript, we can define our own functions, called user-defined

More information

Module7: AJAX. Click, wait, and refresh user interaction. Synchronous request/response communication model. Page-driven: Workflow is based on pages

Module7: AJAX. Click, wait, and refresh user interaction. Synchronous request/response communication model. Page-driven: Workflow is based on pages INTERNET & WEB APPLICATION DEVELOPMENT SWE 444 Fall Semester 2008-2009 (081) Module7: Objectives/Outline Objectives Outline Understand the role of Learn how to use in your web applications Rich User Experience

More information

Lab 1 - Introduction to Angular

Lab 1 - Introduction to Angular Lab 1 - Introduction to Angular In this lab we will build a Hello World style Angular component. The key focus is to learn how to install all the required code and use them from the browser. We wont get

More information

CISC 1600 Lecture 2.4 Introduction to JavaScript

CISC 1600 Lecture 2.4 Introduction to JavaScript CISC 1600 Lecture 2.4 Introduction to JavaScript Topics: Javascript overview The DOM Variables and objects Selection and Repetition Functions A simple animation What is JavaScript? JavaScript is not Java

More information

Module 5 JavaScript, AJAX, and jquery. Module 5. Module 5 Contains an Individual and Group component

Module 5 JavaScript, AJAX, and jquery. Module 5. Module 5 Contains an Individual and Group component Module 5 JavaScript, AJAX, and jquery Module 5 Contains an Individual and Group component Both are due on Wednesday October 24 th Start early on this module One of the most time consuming modules in the

More information

At the Forge JavaScript Reuven M. Lerner Abstract Like the language or hate it, JavaScript and Ajax finally give life to the Web. About 18 months ago, Web developers started talking about Ajax. No, we

More information

Fall Semester (081) Module7: AJAX

Fall Semester (081) Module7: AJAX INTERNET & WEB APPLICATION DEVELOPMENT SWE 444 Fall Semester 2008-2009 (081) Module7: AJAX Dr. El-Sayed El-Alfy Computer Science Department King Fahd University of Petroleum and Minerals alfy@kfupm.edu.sa

More information

AngularJS Intro Homework

AngularJS Intro Homework AngularJS Intro Homework Contents 1. Overview... 2 2. Database Requirements... 2 3. Navigation Requirements... 3 4. Styling Requirements... 4 5. Project Organization Specs (for the Routing Part of this

More information

Key features. Nothing to do with java It is the Client-side scripting language Designed to add interactivity to HTML pages

Key features. Nothing to do with java It is the Client-side scripting language Designed to add interactivity to HTML pages Javascript Key features Nothing to do with java It is the Client-side scripting language Designed to add interactivity to HTML pages (DHTML): Event-driven programming model AJAX Great example: Google Maps

More information

University of Washington, CSE 190 M Homework Assignment 8: Baby Names

University of Washington, CSE 190 M Homework Assignment 8: Baby Names University of Washington, CSE 190 M Homework Assignment 8: Baby Names This assignment is about using Ajax to fetch data from files and web services in text, HTML, XML, and JSON formats. You must match

More information

Web API Lab. The next two deliverables you shall write yourself.

Web API Lab. The next two deliverables you shall write yourself. Web API Lab In this lab, you shall produce four deliverables in folder 07_webAPIs. The first two deliverables should be pretty much done for you in the sample code. 1. A server side Web API (named listusersapi.jsp)

More information

Professional Course in Web Designing & Development 5-6 Months

Professional Course in Web Designing & Development 5-6 Months Professional Course in Web Designing & Development 5-6 Months BASIC HTML Basic HTML Tags Hyperlink Images Form Table CSS 2 Basic use of css Formatting the page with CSS Understanding DIV Make a simple

More information

HTML 5 and CSS 3, Illustrated Complete. Unit L: Programming Web Pages with JavaScript

HTML 5 and CSS 3, Illustrated Complete. Unit L: Programming Web Pages with JavaScript HTML 5 and CSS 3, Illustrated Complete Unit L: Programming Web Pages with JavaScript Objectives Explore the Document Object Model Add content using a script Trigger a script using an event handler Create

More information

Using Development Tools to Examine Webpages

Using Development Tools to Examine Webpages Chapter 9 Using Development Tools to Examine Webpages Skills you will learn: For this tutorial, we will use the developer tools in Firefox. However, these are quite similar to the developer tools found

More information

Communicator. Conversion Tracking Implementation Guide February Conversion Tracking Implementation Guide

Communicator. Conversion Tracking Implementation Guide February Conversion Tracking Implementation Guide Conversion Tracking Implementation Guide Communicator Conversion Tracking Implementation Guide Version 1.0 A guide to implementing conversion tracking on your website covering a standard setup as well

More information

Module 5 JavaScript, AJAX, and jquery. Module 5. Module 5 Contains 2 components

Module 5 JavaScript, AJAX, and jquery. Module 5. Module 5 Contains 2 components Module 5 JavaScript, AJAX, and jquery Module 5 Contains 2 components Both the Individual and Group portion are due on Monday October 30 th Start early on this module One of the most time consuming modules

More information

JavaScript Introduction

JavaScript Introduction JavaScript Introduction Web Technologies I. Zsolt Tóth University of Miskolc 2016 Zsolt Tóth (UM) JavaScript Introduction 2016 1 / 31 Introduction Table of Contents 1 Introduction 2 Syntax Variables Control

More information

Introduction to AJAX Bringing Interactivity & Intuitiveness Into Web Applications. By : Bhanwar Gupta SD-Team-Member Jsoft Solutions

Introduction to AJAX Bringing Interactivity & Intuitiveness Into Web Applications. By : Bhanwar Gupta SD-Team-Member Jsoft Solutions Introduction to AJAX Bringing Interactivity & Intuitiveness Into Web Applications By : Bhanwar Gupta SD-Team-Member Jsoft Solutions Applications today You have two basic choices: Desktop applications and

More information

Web API Lab folder 07_webApi : webapi.jsp your testapijs.html testapijq.html that works functionally the same as the page testapidomjs.

Web API Lab folder 07_webApi : webapi.jsp your testapijs.html testapijq.html that works functionally the same as the page testapidomjs. Web API Lab In this lab, you will produce three deliverables in folder 07_webApi : 1. A server side Web API (named webapi.jsp) that accepts an input parameter, queries your database, and then returns a

More information

8/19/2018. Web Development & Design Foundations with HTML5. Learning Objectives (1 of 2) Learning Objectives (2 of 2) What is JavaScript?

8/19/2018. Web Development & Design Foundations with HTML5. Learning Objectives (1 of 2) Learning Objectives (2 of 2) What is JavaScript? Web Development & Design Foundations with HTML5 Ninth Edition Chapter 14 A Brief Look at JavaScript and jquery Slides in this presentation contain hyperlinks. JAWS users should be able to get a list of

More information

Implementing a Numerical Data Access Service

Implementing a Numerical Data Access Service Implementing a Numerical Data Access Service Andrew Cooke October 2008 Abstract This paper describes the implementation of a J2EE Web Server that presents numerical data, stored in a database, in various

More information

Web development using PHP & MySQL with HTML5, CSS, JavaScript

Web development using PHP & MySQL with HTML5, CSS, JavaScript Web development using PHP & MySQL with HTML5, CSS, JavaScript Static Webpage Development Introduction to web Browser Website Webpage Content of webpage Static vs dynamic webpage Technologies to create

More information

University of Washington, CSE 154 Homework Assignment 8: Baby Names

University of Washington, CSE 154 Homework Assignment 8: Baby Names University of Washington, CSE 154 Homework Assignment 8: Baby Names This assignment is about using Ajax to fetch data in text, HTML, XML, and JSON formats. Every 10 years, the Social Security Administration

More information

If you re serious about Cookie Stuffing, take a look at Cookie Stuffing Script.

If you re serious about Cookie Stuffing, take a look at Cookie Stuffing Script. Cookie Stuffing What is Cookie Stuffing? Cookie Stuffing is a very mild form of black hat marketing, because in all honesty, this one doesn t break any laws. Certainly, it goes against the terms of service

More information

Web Development & Design Foundations with HTML5, 8 th Edition Instructor Materials Chapter 14 Test Bank

Web Development & Design Foundations with HTML5, 8 th Edition Instructor Materials Chapter 14 Test Bank Multiple Choice. Choose the best answer. 1. JavaScript can be described as: a. an object-oriented scripting language b. an easy form of Java c. a language created by Microsoft 2. Select the true statement

More information

Web Designing Course

Web Designing Course Web Designing Course Course Summary: HTML, CSS, JavaScript, jquery, Bootstrap, GIMP Tool Course Duration: Approx. 30 hrs. Pre-requisites: Familiarity with any of the coding languages like C/C++, Java etc.

More information

HTML 5 Form Processing

HTML 5 Form Processing HTML 5 Form Processing In this session we will explore the way that data is passed from an HTML 5 form to a form processor and back again. We are going to start by looking at the functionality of part

More information

AJAX: Introduction CISC 282 November 27, 2018

AJAX: Introduction CISC 282 November 27, 2018 AJAX: Introduction CISC 282 November 27, 2018 Synchronous Communication User and server take turns waiting User requests pages while browsing Waits for server to respond Waits for the page to load in the

More information

COMP 2406: Fundamentals of Web Applications. Fall 2013 Mid-Term Exam Solutions

COMP 2406: Fundamentals of Web Applications. Fall 2013 Mid-Term Exam Solutions COMP 2406: Fundamentals of Web Applications Fall 2013 Mid-Term Exam Solutions 1. ( false ) HTTP cookies are only sent to a web server when explicitly requested. 2. ( false ) Cookies are normally parsed

More information

(try adding using css to add some space between the bottom of the art div and the reset button, this can be done using Margins)

(try adding using css to add some space between the bottom of the art div and the reset button, this can be done using Margins) Pixel Art Editor Extra Challenges 1. Adding a Reset button Add a reset button to your HTML, below the #art div. Pixels go here reset The result should look something

More information

CNIT 129S: Securing Web Applications. Ch 12: Attacking Users: Cross-Site Scripting (XSS) Part 2

CNIT 129S: Securing Web Applications. Ch 12: Attacking Users: Cross-Site Scripting (XSS) Part 2 CNIT 129S: Securing Web Applications Ch 12: Attacking Users: Cross-Site Scripting (XSS) Part 2 Finding and Exploiting XSS Vunerabilities Basic Approach Inject this string into every parameter on every

More information

PHP & My SQL Duration-4-6 Months

PHP & My SQL Duration-4-6 Months PHP & My SQL Duration-4-6 Months Overview of the PHP & My SQL Introduction of different Web Technology Working with the web Client / Server Programs Server Communication Sessions Cookies Typed Languages

More information

The course is supplemented by numerous hands-on labs that help attendees reinforce their theoretical knowledge of the learned material.

The course is supplemented by numerous hands-on labs that help attendees reinforce their theoretical knowledge of the learned material. Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc WA2442 Introduction to JavaScript Objectives This intensive training course

More information

Web Development & Design Foundations with HTML5

Web Development & Design Foundations with HTML5 1 Web Development & Design Foundations with HTML5 CHAPTER 14 A BRIEF LOOK AT JAVASCRIPT Copyright Terry Felke-Morris 2 Learning Outcomes In this chapter, you will learn how to: Describe common uses of

More information

Fundamentals of Website Development

Fundamentals of Website Development Fundamentals of Website Development CSC 2320, Fall 2015 The Department of Computer Science Events handler Element with attribute onclick. Onclick with call function Function defined in your script or library.

More information

Technology in Action. Chapter Topics. Scope creep occurs when: 3/20/2013. Information Systems include all EXCEPT the following:

Technology in Action. Chapter Topics. Scope creep occurs when: 3/20/2013. Information Systems include all EXCEPT the following: Technology in Action Technology in Action Alan Evans Kendall Martin Mary Anne Poatsy Chapter 10 Behind the Scenes: Software Programming Ninth Edition Chapter Topics Understanding software programming Life

More information

Why Discuss JavaScript? CS312: Programming Languages. Lecture 21: JavaScript. JavaScript Target. What s a Scripting Language?

Why Discuss JavaScript? CS312: Programming Languages. Lecture 21: JavaScript. JavaScript Target. What s a Scripting Language? Why Discuss JavaScript? CS312: Programming Languages Lecture 21: JavaScript Thomas Dillig JavaScript is very widely used and growing Any AJAX application heavily relies on JavaScript JavaScript also has

More information

AJAX: Rich Internet Applications

AJAX: Rich Internet Applications AJAX: Rich Internet Applications Web Programming Uta Priss ZELL, Ostfalia University 2013 Web Programming AJAX Slide 1/27 Outline Rich Internet Applications AJAX AJAX example Conclusion More AJAX Search

More information

CSC Javascript

CSC Javascript CSC 4800 Javascript See book! Javascript Syntax How to embed javascript between from an external file In an event handler URL - bookmarklet

More information

CodeValue. C ollege. Prerequisites: Basic knowledge of web development and especially JavaScript.

CodeValue. C ollege. Prerequisites: Basic knowledge of web development and especially JavaScript. Course Syllabuses Introduction to AngularJS Length: 3 days Prerequisites: Basic knowledge of web development and especially JavaScript. Objectives: Students will learn to take advantage of AngularJS and

More information

CS312: Programming Languages. Lecture 21: JavaScript

CS312: Programming Languages. Lecture 21: JavaScript CS312: Programming Languages Lecture 21: JavaScript Thomas Dillig Thomas Dillig, CS312: Programming Languages Lecture 21: JavaScript 1/25 Why Discuss JavaScript? JavaScript is very widely used and growing

More information

Welcome to CS50 section! This is Week 10 :(

Welcome to CS50 section! This is Week 10 :( Welcome to CS50 section! This is Week 10 :( This is our last section! Final project dates Official proposals: due this Friday at noon Status report: due Monday, Nov 28 at noon Hackathon: Thursday, Dec

More information

JavaScript and XHTML. Prof. D. Krupesha, PESIT, Bangalore

JavaScript and XHTML. Prof. D. Krupesha, PESIT, Bangalore JavaScript and XHTML Prof. D. Krupesha, PESIT, Bangalore Why is JavaScript Important? It is simple and lots of scripts available in public domain and easy to use. It is used for client-side scripting.

More information

COMP519 Practical 5 JavaScript (1)

COMP519 Practical 5 JavaScript (1) COMP519 Practical 5 JavaScript (1) Introduction This worksheet contains exercises that are intended to familiarise you with JavaScript Programming. While you work through the tasks below compare your results

More information

White Paper: Delivering Enterprise Web Applications on the Curl Platform

White Paper: Delivering Enterprise Web Applications on the Curl Platform White Paper: Delivering Enterprise Web Applications on the Curl Platform Table of Contents Table of Contents Executive Summary... 1 Introduction... 2 Background... 2 Challenges... 2 The Curl Solution...

More information

Master Syndication Gateway V2. User's Manual. Copyright Bontrager Connection LLC

Master Syndication Gateway V2. User's Manual. Copyright Bontrager Connection LLC Master Syndication Gateway V2 User's Manual Copyright 2005-2006 Bontrager Connection LLC 1 Introduction This document is formatted for A4 printer paper. A version formatted for letter size printer paper

More information

Web Robots Platform. Web Robots Chrome Extension. Web Robots Portal. Web Robots Cloud

Web Robots Platform. Web Robots Chrome Extension. Web Robots Portal. Web Robots Cloud Features 2016-10-14 Table of Contents Web Robots Platform... 3 Web Robots Chrome Extension... 3 Web Robots Portal...3 Web Robots Cloud... 4 Web Robots Functionality...4 Robot Data Extraction... 4 Robot

More information

Siteforce Pilot: Best Practices

Siteforce Pilot: Best Practices Siteforce Pilot: Best Practices Getting Started with Siteforce Setup your users as Publishers and Contributors. Siteforce has two distinct types of users First, is your Web Publishers. These are the front

More information

Unifer Documentation. Release V1.0. Matthew S

Unifer Documentation. Release V1.0. Matthew S Unifer Documentation Release V1.0 Matthew S July 28, 2014 Contents 1 Unifer Tutorial - Notes Web App 3 1.1 Setting up................................................. 3 1.2 Getting the Template...........................................

More information