SlideShare a Scribd company logo
Getting Started with Web
Akshay Mathur
Ground Rules
• Post on FB and Tweet now
• Disturb Everyone during the
session
– Not by phone rings
– Not by local talks
– By more information and
questions

@akshaymathu

2
Let’s Know Each Other
•
•
•
•
•
•
•

Do you code?
OS?
Programing Language?
HTML?
Javascript?
JSON?
Why are you attending?
@akshaymathu

3
Akshay Mathur
• Founding Team Member of
– ShopSocially (Enabling “social” for retailers)
– AirTight Neworks (Global leader of WIPS)

• 15+ years in IT industry
– Currently Principal Architect at ShopSocially
– Mostly worked with Startups
• From Conceptualization to Stabilization
• At different functions i.e. development, testing, release
• With multiple technologies

@akshaymathu

4
What is Web?
The Web
• Many computers world
wide connect to each
other
• Information stored in
one computer can be
viewed from other
computer

@akshaymathu

6
Involved Software
Web Browser
Core Engine

Web Server
Web Server
Application Server

DOM Renderer

Database Server

Message Queuing Server
Task Workers
JavaScript Runtime
Caching Engine
The Evolution

@akshaymathu

8
Web 1.0 - Static
• Static pages
– Were Read Only and B&W
– Colors and other simple formatting came in

• Input Forms
– Came in just for data collection to start with
– Server side response based on input came in

@akshaymathu

9
Web 1.0 - Dynamic
• Client Side Dynamism
– With DHTML, color changing web pages became
popular
– Changing other basic properties of the text also
became possible

• Server Side Dynamism
– Dynamically generated pages made the web
responsive to inputs
– Embedded scripting languages gave it a boost
@akshaymathu

10
Web 2.0: The Power
• Changing part of the webpage
– Programmatically reading and writing DOM
elements
– Rich event handling

• Communicating with server without refreshing
entire page
– AJAX

@akshaymathu

11
Understanding URL
https://sub.domain.com:8086/a/folder/file.html?key=val&ke
y=val2#some_place

•
•
•
•
•
•
•

Protocol
Sub-domain, Domain and TLD
Port
Path
File
Query string
Fragment
@akshaymathu

12
Understanding Web Page
Overall Structure

@akshaymathu

14
Doctype and DTD
• Tell browser what standards this document is
following
– How to parse
• HTML or XHTML
• HTML version 1.0 or 1.1

– Show strict errors or not

<!DOCTYPE html PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/x
html1-transitional.dtd">
@akshaymathu

15
Html
• Only the content within <html> and </html> is
parsed
• xmlns tells where the tags being used in the
document are described
• Multiple xmlns attributes can be used
<html xmlns:fb="http://ogp.me/ns
/fb#" xmlns="http://www.w3.org/1
999/xhtml">
@akshaymathu

16
Head
• Typically Contains invisible items
– Title
– Meta
– Link

– Script
– Style

@akshaymathu

17
Title
• Title of the page
• Shows up on title bar of browser

<title>ShopSocially
Amplify</title>

| Engage Convert

@akshaymathu

18
Meta
• Additional metadata of the page
• Multiple meta tags can be used
<meta

http-equiv="Content-Type"
content="text/html; charset=utf-8">

<meta

name="keywords"

content="social platform, conversion">

<meta

property="fb:app_id"

content="213036345945">
@akshaymathu

19
Content Type
• Tells browser how to parse and execute the
content
– Character set info is also incuded

<meta

http-equiv="Content-Type"

content="text/html; charset=utf-8">

• ‘text/html’ is used for HTML pages
– A few others are text/csv, application/pdf etc.
@akshaymathu

20
Link
• Link to external files
• Typically used for CSS

@akshaymathu

21
Script
• Tells browser that the content is an executable
script
– Javascript, vbscript etc.

@akshaymathu

22
Style
• Embeds CSS on the page

<style type="text/css">
.fb_reset div{overflow:hidden}
.fb_link img{border:none}
</style>
@akshaymathu

23
Body
• Contains all visible elements
• Different elements can be used for laying out
the page
– Look and feel can be controlled by style elements
– Some elements can not contain anything inside
them e.g. input, br etc.

@akshaymathu

24
HTML Tags
Types
• Containers
– Have opening and closing tags of same name
– ‘/’ is used for closing e.g. <html>…</html>

• Non-containers
– Don’t have a closing tag
– ‘/’ is used at the end of same tag for closing e.g.
<br />, <input type=“text” />

@akshaymathu

26
Display
• Block
– Take up complete available width by default
– Consecutive elements stack vertically

• Inline
– Take up width only equal to the content
– Consecutive elements stack horizontally
– Typically word-wrap

@akshaymathu

27
Writing Text
• Text can be written directly in body
• It is a good to have it in blocks
– <p>…</p>
• Block display
• Some default style

– <div>…</div>
• Block display
• No default style

– <span>…</span>
• Inline display
• No default style

@akshaymathu

28
Headings
• Preformatted text size
– Seven sizes are available i.e. h1 … h7
– Defaults can be overridden by CSS

• Important for SEO
<h1>This is heading</h1>

@akshaymathu

29
Bulleted List
• Can be un-ordered (<ul>) or numbered (<ol>)
• List items (<li>) are shown indented
• Can be multilevel and mixed
<ol>
<li>item1</li>
<ul>
<li>sub item1</li>
</ul>
</ol>
@akshaymathu

30
Taking Input via Form Elements
•
•
•
•
•
•
•

Text box: <input type=“text” />
Radio button: <input type=“radio” />
Check box: <input type=“checkbox” />
Button: <input type=“button” />
Hidden: <input type=“hidden” />
Multiline Text box: <textarea></textarea>
Dropdown/List:
<select>
<option>…</option>
…
</select>
@akshaymathu

31
Styling Elements
Making it Look Different
• Look can be defined in style attribute of an
element
<h3 style=“color: #aaa;
background-color: #eee;
font-size: 16px; width: 100%;
padding: 5px;>This is Heading3
as I want</h3>
@akshaymathu

33
Font
• Font-face
– Name of font to be used

• Font-family
– Multiple font names in order

• Font-size
– Text size in any unit i.e. px, percentage, em

• Font-weight
– Bold or regular
@akshaymathu

34
Changing Colors
• Color value can be specified in many ways
– Hex RGB is mostly used i.e. #rrggbb

• Background-color
– Specifies color of background fill

• Color
– Specifies color of text

• Border-color
– Specifies color of border line
@akshaymathu

35
Box Model
•
•
•
•
•
•
•
•

Width
Padding
Border
Margin
Position
Z-index
Top/Bottom
Left/Right
@akshaymathu

36
Where to write style?
• Inline
– As ‘style’ attribute of an element

• Style block
– On page in <style>…</style> block

• CSS file
– In an external file

• This is also the preference order for applying
style
@akshaymathu

37
Defining CSS
• Multiple styling properties can be grouped
together
• Element(s) where to apply style is determined
by CSS selector
– Multiple CSS selectors may refer to an element

• All properties are applied to the element

@akshaymathu

38
CSS Selectors
• Tag name
a {color: blue;}
• ID
#my_unique_a {color: red;}
• Class

.common_class {color:#ccc;
margin:5px;}
• Compound
.common_class a {color: green;}
• Psudo
a:hover, a:visited {color: #ccc;}
@akshaymathu

39
CSS Frameworks
• Provide ready-to-use collection of classes for
common requirements
– Grid
– Navigation bars
– Form elements
– Buttons
–…

• Bootstrap is the great one
@akshaymathu

40
@akshaymathu

41
JavaScript
JavaScript
•
•
•
•
•
•
•

Born in 1995 at Netscape
Not at all related to Java
Syntax influenced by C
Interpreted ECMA scripting lanuage
Dynamically typed
Object Oriented as well as Functional
Prototype based
@akshaymathu

43
Javascript
• Object Oriented
– But different from other OO languages

• Single threaded
• Runs in its sandbox
– Has full access to the objects on the page
– Has restricted access to other pages or client
machine file-system

@akshaymathu

44
Typical Usage
• Web programing
– Client side
• Web pages
• Browser plugins

– Server side
• SSJS (not in use)
• NodeJS

• PDF documents
• Desktop Widgets
• MongoDB
@akshaymathu

45
JavaScript Language Reference
Comments
• Single line
– Starts with //
– Can also be used after a statement

• Multi line
– Starts with /* and ends with */

@akshaymathu

47
Statements
• Case sensitive
• Ignore whitespace
• Semicolon (;) is used as delimiter for
statements
• Block of statements is delimited by curly
braces ({})

@akshaymathu

48
Output
• Visible to all using DOM functions
document.write(„Hello‟);
alert(„How are you‟);

• For developers in console
console.log(“This is working”);

@akshaymathu

49
Variable
• Explicitly defining is optional
– JS runtime automatically defines as needed
– Defining all variables with ‘var’ keyword is good

• Loosely typed
– No need to define the type (int, str etc.)

• Dynamically typed
– Type changes at runtime as the value changes
var my_var = „Hello‟;
my_var = 6;
@akshaymathu

50
Data Types
•
•
•
•
•
•
•
•
•

String: “1”, “Hello! How are you”
Number: 1, 2, 121.22
Boolean: true, false
Array: [1, “1”, false, {a: 10}]
Object: {lang: “JS”, val: my_var}
Null: null
Undefined: undefined
Functions: function(){}
Date: Mon, 23 Sep 2013 12:18:54 GMT
typeof “1” // String
@akshaymathu

51
Operators
• Arithmetic
+, -, *, /,
%, ++, --

• Assignment
=, +=, -=,
*=, /=, %=

• Concatenation
+

• Comparison
==, ===, !=,
!==, >, <,
<=, >=
• Logical
&&, ||, !
• Conditional
() ? :
@akshaymathu

52
Conditional Blocks
• If… else if … else
If (age > 18){
can_vote = true;
} else {
can_vote = false;
}
Or
can_vote = (age>18) ? true : false;
@akshaymathu

53
For Loop
• For
for (i=0; i<array.length; i++){
console.log(array[i]);
}
• For/in
for (item in array){
console.log(item);
}
@akshaymathu

54
While Loop
• While
while (is_extra_water){
drain();
}
• Do/while
do {
drain();
} while (is_extra_water);
@akshaymathu

55
JS Functions
Function
• Code block that executes on ‘call’
//define the function
function say_hello(name){
alert(„Hello! „ + name);
}
//call the function
say_hello(„Akshay‟);
@akshaymathu

57
Function Arguments
• Any number of arguments can be passed without
declaring
• Named arguments are not supported

say_hello(1); // Hello! 1
say_hello(); // Hello! undefined
say_hello(„Akshay‟, „Mathur‟);
//Hello! Akshay
@akshaymathu

58
Naming a Function
function my_func(){}
• A function may not have a name
function(){};

my_func = function(){};
@akshaymathu

59
Variable Scope
• By default all variables are global
• Variables defined with ‘var’ keyword are local to
the function
• It is assumed that all variables are defined in the
first line
function(){
var my_var = „Hello‟;
console.log(msg);
var2 = 6;

}
@akshaymathu

60
Return Values
• Anything can be returned from a function
using return statement
function sqr(x){
var sq = x * x;
return sq;
}

var four_sq = sqr(4);
@akshaymathu

61
Other Facts
• A function can be assigned to a variable
• A function can be defined within another function
• A function can return a function
function sqr(){
sq = function (x){
return x * x * x;
};
return sq;
}
My_sqr = sqr(); // function
My_sqr(3);
// 27
@akshaymathu

62
Global Functions
• encodeURI(),
encodeURIComponent()
Encodes a URI
•

•

•

decodeURI(),
decodeURIComponent()

Decodes a URI
•
•

•

escape() Encodes a string
unescape() Decodes an

•

String() Converts an object's
value to a string
Number() Converts an object's
value to a number

•

•

a value is a finite, legal number
isNaN() Determines whether a
value is an illegal number

parseInt() Parses a string and
returns an integer
parseFloat() Parses a string

and returns a floating point
number

encoded string
•

isFinite() Determines whether

eval() Evaluates a string and

executes it as if it was script code

@akshaymathu

63
@akshaymathu

64
JS Objects
Objects
• Everything in JS is an object (instance)
“string”.length // 6
“str”.length.toFixed(2) // “3.00”
[„hell‟, „o!‟].join(„‟) // „hello!‟

• Custom objects can also be defined

@akshaymathu

66
JSON
• Javascript Object has a key and a value
• Key is always string
• Value can be of any type
– Including another JSON object

A = {key1: value1, key2: value2};
or
A = new Object();
A[„key1‟] = value1;
A.key2 = value2;
@akshaymathu

67
Object as Namespace
• It is a good practice to group variables and
functions together in an object rather than
keeping them global
var user = {};
user.name = “Akshay”;
user.greet = function(){
alert(„Hello!„.concat(user.name);
};
@akshaymathu

68
Object as Named Argument
• Objects can be passed to a function as an argument
• They proxy for named arguments
Say_hello = function (options){
if (typeof options === „Object‟){
options.msg = (options.msg)?
options.msg : ‟Hello!‟;
}
alert(options.msg + „ „ + options.name);
}
Say_hello({name: „Akshay‟});
@akshaymathu

69
@akshaymathu

70
Dynamic Pages
Server Side Dynamism
• At web server
• Ability to execute a program in context of a web
request
– The program takes input from the request
– The program creates a HTML page as output
• Web browser understands only HTML

• Embedded scripting technologies make it simpler
– Allow the program to be inserted within an HTML
page
• PHP, ASP, JSP etc.
@akshaymathu

72
Client Side Dynamism
• At web browser
– Javascript

• Ability to change properties of elements on
the web page on user’s action
– Text color, image source etc.
– On click, on hover etc.

• Ability to validate Form input without the
round trip
@akshaymathu

73
Document Object Model
• Window Object
– Represents the browser window
– All Javascript functions and variable are attached
here by default

• Document Object
– Represents the page rendered inside the window
– All HTML elements are available here
• In the hierarchy they are attached

@akshaymathu

74
Manipulating the Web Page
• Get programmatic handle of an HTML element
via Document Object Model (DOM)
var el =
document.getElementByID(
„a_unique_id‟);
• Change desired property of the element
el.src = “my_photo.png”
@akshaymathu

75
Changing Style
• Access to inline style properties is via style
object
text_color = el.style.color

• Change desired style attribute
el.style.fontSize = “16px”

@akshaymathu

76
Responding to User Actions
• Browser raises an event on user action
– A few of them are onclick, onkeypress

• A JavaScript function can be called when the
event happens
el.onclick = function(){
alert(„User clicked!‟);
}

@akshaymathu

77
@akshaymathu

78
presents

Creating Single Page Web App
Series of 3 workshops
Full Day
Hands-on
1. Simple Web Pages
•
•
•
•
•
•
•
•

Introduction to Web and its evolution
Web page basics and HTML tags
Styling elements
JavaScript basics
Introduction to DOM
Changing style using JavaScript
Simple DOM manipulation
Responding to user actions
@akshaymathu

80
2. Dynamic Web Pages
•
•
•
•

Jquery JavaScript Framework
Handling DOM events
Getting data asynchronously via AJAX
Client side dynamism using JavaScript
templates
• Simplify JS coding via CoffeeScript
• Writing JS classes (prototypes)
@akshaymathu

81
3. Single Page App
•
•
•
•
•
•

Understanding MVC concepts
Introduction BackboneJS and UnderscoreJS
Using Backbone models, views and router
Dealing with collections
Custom events and their handlers
Adjusting URLs for making browser buttons
work
@akshaymathu

82
Document Object Model
• Window Object
– Represents the browser window
– All Javascript functions and variable are attached
here by default

• Document Object
– Represents the page rendered inside the window
– All HTML elements are available here
• In the hierarchy they are attached

@akshaymathu

83
Manipulating the Web Page
• Get programmatic handle of an HTML element
via Document Object Model (DOM)
var el =
document.getElementByID(
„a_unique_id‟);
• Change desired property of the element
el.src = “my_photo.png”
@akshaymathu

84
JS Framework
• Library for simplifying JS coding
– Jquery is most popular

• Provides simple interface and syntactic sugar
for common JS work
– Selecting DOM element
– DOM traversal and manipulation
– Event handling

• Takes care of cross browser and cross version
issues
@akshaymathu

85
Jquery
• Takes care of cross browser and cross version
issues
• Library for simplifying JS coding
– Everything is via functions
– Same function for get and set

• Provides simple interface and syntactic sugar for
common JS work
– Selecting DOM element
– DOM traversal and manipulation
– Event handling
@akshaymathu

86
Javascript Templates
• Dynamically creates HTML code in JS
– Data driven HTML
– Allows variable substitution, looping and
conditional statements

• Generated HTML is inserted into the DOM for
changing part of the page on-the-fly

@akshaymathu

87
Using Template
<script type="text/x-jquery-tmpl”
id=”photo">
<img src=“${photo_url}”
title="${name}" />
</script>

<script type="text/javascript”>
template = $(‟#photo').template();
t_html = $.tmpl(template, data);
$(“#container”).html(t_html);
</script>
@akshaymathu

88
AJAX
• A way in web browser to communicate with
server without reloading the page
• XmlHttpRequest (XHR) object can also create
HTTP request and receive response
– The request happens asynchronously
• Other operations on page are allowed during the
request

– Received data does not render automatically
• Data needs to be received in a callback function and
used programmatically
@akshaymathu

89
AJAX Call
$.ajax({
url: „/my_ajax_target‟,
type: „POST‟,
DataType: „json‟,
data: {id: 2},
success: function(response){
alert(„Hello! „ + response.name);
},
error: function(){
alert(„Please try later‟);
}
});
@akshaymathu

90
CoffeeScript
• A language with simple syntax
– No semicolons and braces
– Resembles to English
– Indentation decides the code blocks

• Compiles into Javascript
– Provides syntactic sugar for boilerplate code
• Manage variable scope
• Class instead of prototype

– Generates good quality, error free code
@akshaymathu

91
Cofeescript to Javascript
greet_me = (name) ->
greeting_word = 'Hello!'
alert "#{greeting_word} #{name}”
Compiles to
greet_me = function(name) {
var greeting_word;
greeting_word = 'Hello!';
return alert("" + greeting_word
+ " " + name);
};
@akshaymathu

92
BackboneJS
• Provides MVC structure for Javascript
– The model object holds data
– The view object handles visual elements and
interactions
– The controller object glues everything together and
provides communication amongst objects

• Custom Events help writing good code and
eliminates use of global variables
– The event object allows raising and handling custom
events
@akshaymathu

93
BackboneJS code in Coffeescript
class LoginModel extends Backbone.Model
class LoginView extends Backbone.View
initialize: =>
@template = $(‟#login_template').template()
@render()
render: =>
$(@el).html $.tmpl(@template, @model.toJSON())
events:
'click #login_btn' : ‟login_handler‟
login_handler: (ev) =>
window.mpq_track ‟Login Click‟
class LoginController extends Backbone.Router
initialize: =>
@l_model = new LoginModel window.app_info
@l_view = new LoginView model: model, el: ‟#login_div‟

@akshaymathu

94
Thanks

http://www.quora.com/Akshay-Mathur

@akshaymathu
@akshaymathu

95

More Related Content

PPTX
Getting Started with jQuery
PPTX
Getting Started with Javascript
PPTX
Object Oriented Programing in JavaScript
PPTX
Working with GIT
PPTX
Creating Single Page Web App using Backbone JS
PDF
[2015/2016] Local data storage for web-based mobile apps
PDF
Angular - Chapter 9 - Authentication and Authorization
PDF
[2015/2016] Require JS and Handlebars JS
Getting Started with jQuery
Getting Started with Javascript
Object Oriented Programing in JavaScript
Working with GIT
Creating Single Page Web App using Backbone JS
[2015/2016] Local data storage for web-based mobile apps
Angular - Chapter 9 - Authentication and Authorization
[2015/2016] Require JS and Handlebars JS

What's hot (20)

PDF
Angular - Chapter 7 - HTTP Services
PDF
JavaScript
PPTX
Getting started with jQuery
PDF
jQuery -Chapter 2 - Selectors and Events
PPTX
SharePoint and jQuery Essentials
PDF
Angular - Chapter 2 - TypeScript Programming
PDF
Handlebars and Require.js
PDF
jQuery - Chapter 1 - Introduction
PDF
jQuery - Chapter 3 - Effects
PPT
PDF
D3.js and SVG
PDF
Simpler Core Data with RubyMotion
PDF
JavaScript - Chapter 7 - Advanced Functions
PDF
jQuery Introduction
PPT
Java script
PPTX
How dojo works
PDF
Introduction to javascript templating using handlebars.js
PPTX
Internet and Web Technology (CLASS-14) [JSP] | NIC/NIELIT Web Technology
PDF
Local storage in Web apps
PDF
RequireJS & Handlebars
Angular - Chapter 7 - HTTP Services
JavaScript
Getting started with jQuery
jQuery -Chapter 2 - Selectors and Events
SharePoint and jQuery Essentials
Angular - Chapter 2 - TypeScript Programming
Handlebars and Require.js
jQuery - Chapter 1 - Introduction
jQuery - Chapter 3 - Effects
D3.js and SVG
Simpler Core Data with RubyMotion
JavaScript - Chapter 7 - Advanced Functions
jQuery Introduction
Java script
How dojo works
Introduction to javascript templating using handlebars.js
Internet and Web Technology (CLASS-14) [JSP] | NIC/NIELIT Web Technology
Local storage in Web apps
RequireJS & Handlebars
Ad

Similar to Getting Started with Web (20)

PPT
xhtml_css.ppt
PPTX
Html presentation
PPTX
Html,CSS & UI/UX design
PDF
Intro to HTML 5 / CSS 3
PPTX
Ifi7174 lesson2
PPT
Introduction_Web_Technologies
PPTX
Concept of CSS unit3
PPTX
Cascading style sheets
PDF
Introduction to XML, XHTML and CSS
PPTX
Cascading style sheets
PPTX
cascadingstylesheets,introduction.css styles-210909054722.pptx
PPTX
WEB TECHNOLOGY Unit-2.pptx
PPT
Web design-workflow
PPTX
Cascading Style Sheets - CSS
PPTX
PPTX
Building Webs Better
PDF
Intro to web dev
PPT
Cascading Style Sheets By Mukesh
PPT
ppt.ppt
xhtml_css.ppt
Html presentation
Html,CSS & UI/UX design
Intro to HTML 5 / CSS 3
Ifi7174 lesson2
Introduction_Web_Technologies
Concept of CSS unit3
Cascading style sheets
Introduction to XML, XHTML and CSS
Cascading style sheets
cascadingstylesheets,introduction.css styles-210909054722.pptx
WEB TECHNOLOGY Unit-2.pptx
Web design-workflow
Cascading Style Sheets - CSS
Building Webs Better
Intro to web dev
Cascading Style Sheets By Mukesh
ppt.ppt
Ad

More from Akshay Mathur (16)

PPTX
Documentation with Sphinx
PPTX
Kubernetes Journey of a Large FinTech
PPTX
Security and Observability of Application Traffic in Kubernetes
PPTX
Enhanced Security and Visibility for Microservices Applications
PPTX
Considerations for East-West Traffic Security and Analytics for Kubernetes En...
PPTX
Kubernetes as Orchestrator for A10 Lightning Controller
PPTX
Cloud Bursting with A10 Lightning ADS
PPTX
Shared Security Responsibility Model of AWS
PPTX
Techniques for scaling application with security and visibility in cloud
PPTX
Introduction to Node js
PPTX
Getting Started with Angular JS
PDF
Releasing Software Without Testing Team
PPTX
CoffeeScript
PPTX
Using Google App Engine Python
PPTX
Testing Single Page Webapp
PPTX
Mongo db
Documentation with Sphinx
Kubernetes Journey of a Large FinTech
Security and Observability of Application Traffic in Kubernetes
Enhanced Security and Visibility for Microservices Applications
Considerations for East-West Traffic Security and Analytics for Kubernetes En...
Kubernetes as Orchestrator for A10 Lightning Controller
Cloud Bursting with A10 Lightning ADS
Shared Security Responsibility Model of AWS
Techniques for scaling application with security and visibility in cloud
Introduction to Node js
Getting Started with Angular JS
Releasing Software Without Testing Team
CoffeeScript
Using Google App Engine Python
Testing Single Page Webapp
Mongo db

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Spectroscopy.pptx food analysis technology
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
A Presentation on Artificial Intelligence
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Tartificialntelligence_presentation.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Getting Started with Data Integration: FME Form 101
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Approach and Philosophy of On baking technology
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Empathic Computing: Creating Shared Understanding
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Spectroscopy.pptx food analysis technology
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Spectral efficient network and resource selection model in 5G networks
A Presentation on Artificial Intelligence
“AI and Expert System Decision Support & Business Intelligence Systems”
Per capita expenditure prediction using model stacking based on satellite ima...
Tartificialntelligence_presentation.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Programs and apps: productivity, graphics, security and other tools
MYSQL Presentation for SQL database connectivity
Getting Started with Data Integration: FME Form 101
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Machine learning based COVID-19 study performance prediction
Approach and Philosophy of On baking technology
Diabetes mellitus diagnosis method based random forest with bat algorithm
Unlocking AI with Model Context Protocol (MCP)
Empathic Computing: Creating Shared Understanding

Getting Started with Web

  • 1. Getting Started with Web Akshay Mathur
  • 2. Ground Rules • Post on FB and Tweet now • Disturb Everyone during the session – Not by phone rings – Not by local talks – By more information and questions @akshaymathu 2
  • 3. Let’s Know Each Other • • • • • • • Do you code? OS? Programing Language? HTML? Javascript? JSON? Why are you attending? @akshaymathu 3
  • 4. Akshay Mathur • Founding Team Member of – ShopSocially (Enabling “social” for retailers) – AirTight Neworks (Global leader of WIPS) • 15+ years in IT industry – Currently Principal Architect at ShopSocially – Mostly worked with Startups • From Conceptualization to Stabilization • At different functions i.e. development, testing, release • With multiple technologies @akshaymathu 4
  • 6. The Web • Many computers world wide connect to each other • Information stored in one computer can be viewed from other computer @akshaymathu 6
  • 7. Involved Software Web Browser Core Engine Web Server Web Server Application Server DOM Renderer Database Server Message Queuing Server Task Workers JavaScript Runtime Caching Engine
  • 9. Web 1.0 - Static • Static pages – Were Read Only and B&W – Colors and other simple formatting came in • Input Forms – Came in just for data collection to start with – Server side response based on input came in @akshaymathu 9
  • 10. Web 1.0 - Dynamic • Client Side Dynamism – With DHTML, color changing web pages became popular – Changing other basic properties of the text also became possible • Server Side Dynamism – Dynamically generated pages made the web responsive to inputs – Embedded scripting languages gave it a boost @akshaymathu 10
  • 11. Web 2.0: The Power • Changing part of the webpage – Programmatically reading and writing DOM elements – Rich event handling • Communicating with server without refreshing entire page – AJAX @akshaymathu 11
  • 15. Doctype and DTD • Tell browser what standards this document is following – How to parse • HTML or XHTML • HTML version 1.0 or 1.1 – Show strict errors or not <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/x html1-transitional.dtd"> @akshaymathu 15
  • 16. Html • Only the content within <html> and </html> is parsed • xmlns tells where the tags being used in the document are described • Multiple xmlns attributes can be used <html xmlns:fb="http://ogp.me/ns /fb#" xmlns="http://www.w3.org/1 999/xhtml"> @akshaymathu 16
  • 17. Head • Typically Contains invisible items – Title – Meta – Link – Script – Style @akshaymathu 17
  • 18. Title • Title of the page • Shows up on title bar of browser <title>ShopSocially Amplify</title> | Engage Convert @akshaymathu 18
  • 19. Meta • Additional metadata of the page • Multiple meta tags can be used <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="keywords" content="social platform, conversion"> <meta property="fb:app_id" content="213036345945"> @akshaymathu 19
  • 20. Content Type • Tells browser how to parse and execute the content – Character set info is also incuded <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> • ‘text/html’ is used for HTML pages – A few others are text/csv, application/pdf etc. @akshaymathu 20
  • 21. Link • Link to external files • Typically used for CSS @akshaymathu 21
  • 22. Script • Tells browser that the content is an executable script – Javascript, vbscript etc. @akshaymathu 22
  • 23. Style • Embeds CSS on the page <style type="text/css"> .fb_reset div{overflow:hidden} .fb_link img{border:none} </style> @akshaymathu 23
  • 24. Body • Contains all visible elements • Different elements can be used for laying out the page – Look and feel can be controlled by style elements – Some elements can not contain anything inside them e.g. input, br etc. @akshaymathu 24
  • 26. Types • Containers – Have opening and closing tags of same name – ‘/’ is used for closing e.g. <html>…</html> • Non-containers – Don’t have a closing tag – ‘/’ is used at the end of same tag for closing e.g. <br />, <input type=“text” /> @akshaymathu 26
  • 27. Display • Block – Take up complete available width by default – Consecutive elements stack vertically • Inline – Take up width only equal to the content – Consecutive elements stack horizontally – Typically word-wrap @akshaymathu 27
  • 28. Writing Text • Text can be written directly in body • It is a good to have it in blocks – <p>…</p> • Block display • Some default style – <div>…</div> • Block display • No default style – <span>…</span> • Inline display • No default style @akshaymathu 28
  • 29. Headings • Preformatted text size – Seven sizes are available i.e. h1 … h7 – Defaults can be overridden by CSS • Important for SEO <h1>This is heading</h1> @akshaymathu 29
  • 30. Bulleted List • Can be un-ordered (<ul>) or numbered (<ol>) • List items (<li>) are shown indented • Can be multilevel and mixed <ol> <li>item1</li> <ul> <li>sub item1</li> </ul> </ol> @akshaymathu 30
  • 31. Taking Input via Form Elements • • • • • • • Text box: <input type=“text” /> Radio button: <input type=“radio” /> Check box: <input type=“checkbox” /> Button: <input type=“button” /> Hidden: <input type=“hidden” /> Multiline Text box: <textarea></textarea> Dropdown/List: <select> <option>…</option> … </select> @akshaymathu 31
  • 33. Making it Look Different • Look can be defined in style attribute of an element <h3 style=“color: #aaa; background-color: #eee; font-size: 16px; width: 100%; padding: 5px;>This is Heading3 as I want</h3> @akshaymathu 33
  • 34. Font • Font-face – Name of font to be used • Font-family – Multiple font names in order • Font-size – Text size in any unit i.e. px, percentage, em • Font-weight – Bold or regular @akshaymathu 34
  • 35. Changing Colors • Color value can be specified in many ways – Hex RGB is mostly used i.e. #rrggbb • Background-color – Specifies color of background fill • Color – Specifies color of text • Border-color – Specifies color of border line @akshaymathu 35
  • 37. Where to write style? • Inline – As ‘style’ attribute of an element • Style block – On page in <style>…</style> block • CSS file – In an external file • This is also the preference order for applying style @akshaymathu 37
  • 38. Defining CSS • Multiple styling properties can be grouped together • Element(s) where to apply style is determined by CSS selector – Multiple CSS selectors may refer to an element • All properties are applied to the element @akshaymathu 38
  • 39. CSS Selectors • Tag name a {color: blue;} • ID #my_unique_a {color: red;} • Class .common_class {color:#ccc; margin:5px;} • Compound .common_class a {color: green;} • Psudo a:hover, a:visited {color: #ccc;} @akshaymathu 39
  • 40. CSS Frameworks • Provide ready-to-use collection of classes for common requirements – Grid – Navigation bars – Form elements – Buttons –… • Bootstrap is the great one @akshaymathu 40
  • 43. JavaScript • • • • • • • Born in 1995 at Netscape Not at all related to Java Syntax influenced by C Interpreted ECMA scripting lanuage Dynamically typed Object Oriented as well as Functional Prototype based @akshaymathu 43
  • 44. Javascript • Object Oriented – But different from other OO languages • Single threaded • Runs in its sandbox – Has full access to the objects on the page – Has restricted access to other pages or client machine file-system @akshaymathu 44
  • 45. Typical Usage • Web programing – Client side • Web pages • Browser plugins – Server side • SSJS (not in use) • NodeJS • PDF documents • Desktop Widgets • MongoDB @akshaymathu 45
  • 47. Comments • Single line – Starts with // – Can also be used after a statement • Multi line – Starts with /* and ends with */ @akshaymathu 47
  • 48. Statements • Case sensitive • Ignore whitespace • Semicolon (;) is used as delimiter for statements • Block of statements is delimited by curly braces ({}) @akshaymathu 48
  • 49. Output • Visible to all using DOM functions document.write(„Hello‟); alert(„How are you‟); • For developers in console console.log(“This is working”); @akshaymathu 49
  • 50. Variable • Explicitly defining is optional – JS runtime automatically defines as needed – Defining all variables with ‘var’ keyword is good • Loosely typed – No need to define the type (int, str etc.) • Dynamically typed – Type changes at runtime as the value changes var my_var = „Hello‟; my_var = 6; @akshaymathu 50
  • 51. Data Types • • • • • • • • • String: “1”, “Hello! How are you” Number: 1, 2, 121.22 Boolean: true, false Array: [1, “1”, false, {a: 10}] Object: {lang: “JS”, val: my_var} Null: null Undefined: undefined Functions: function(){} Date: Mon, 23 Sep 2013 12:18:54 GMT typeof “1” // String @akshaymathu 51
  • 52. Operators • Arithmetic +, -, *, /, %, ++, -- • Assignment =, +=, -=, *=, /=, %= • Concatenation + • Comparison ==, ===, !=, !==, >, <, <=, >= • Logical &&, ||, ! • Conditional () ? : @akshaymathu 52
  • 53. Conditional Blocks • If… else if … else If (age > 18){ can_vote = true; } else { can_vote = false; } Or can_vote = (age>18) ? true : false; @akshaymathu 53
  • 54. For Loop • For for (i=0; i<array.length; i++){ console.log(array[i]); } • For/in for (item in array){ console.log(item); } @akshaymathu 54
  • 55. While Loop • While while (is_extra_water){ drain(); } • Do/while do { drain(); } while (is_extra_water); @akshaymathu 55
  • 57. Function • Code block that executes on ‘call’ //define the function function say_hello(name){ alert(„Hello! „ + name); } //call the function say_hello(„Akshay‟); @akshaymathu 57
  • 58. Function Arguments • Any number of arguments can be passed without declaring • Named arguments are not supported say_hello(1); // Hello! 1 say_hello(); // Hello! undefined say_hello(„Akshay‟, „Mathur‟); //Hello! Akshay @akshaymathu 58
  • 59. Naming a Function function my_func(){} • A function may not have a name function(){}; my_func = function(){}; @akshaymathu 59
  • 60. Variable Scope • By default all variables are global • Variables defined with ‘var’ keyword are local to the function • It is assumed that all variables are defined in the first line function(){ var my_var = „Hello‟; console.log(msg); var2 = 6; } @akshaymathu 60
  • 61. Return Values • Anything can be returned from a function using return statement function sqr(x){ var sq = x * x; return sq; } var four_sq = sqr(4); @akshaymathu 61
  • 62. Other Facts • A function can be assigned to a variable • A function can be defined within another function • A function can return a function function sqr(){ sq = function (x){ return x * x * x; }; return sq; } My_sqr = sqr(); // function My_sqr(3); // 27 @akshaymathu 62
  • 63. Global Functions • encodeURI(), encodeURIComponent() Encodes a URI • • • decodeURI(), decodeURIComponent() Decodes a URI • • • escape() Encodes a string unescape() Decodes an • String() Converts an object's value to a string Number() Converts an object's value to a number • • a value is a finite, legal number isNaN() Determines whether a value is an illegal number parseInt() Parses a string and returns an integer parseFloat() Parses a string and returns a floating point number encoded string • isFinite() Determines whether eval() Evaluates a string and executes it as if it was script code @akshaymathu 63
  • 66. Objects • Everything in JS is an object (instance) “string”.length // 6 “str”.length.toFixed(2) // “3.00” [„hell‟, „o!‟].join(„‟) // „hello!‟ • Custom objects can also be defined @akshaymathu 66
  • 67. JSON • Javascript Object has a key and a value • Key is always string • Value can be of any type – Including another JSON object A = {key1: value1, key2: value2}; or A = new Object(); A[„key1‟] = value1; A.key2 = value2; @akshaymathu 67
  • 68. Object as Namespace • It is a good practice to group variables and functions together in an object rather than keeping them global var user = {}; user.name = “Akshay”; user.greet = function(){ alert(„Hello!„.concat(user.name); }; @akshaymathu 68
  • 69. Object as Named Argument • Objects can be passed to a function as an argument • They proxy for named arguments Say_hello = function (options){ if (typeof options === „Object‟){ options.msg = (options.msg)? options.msg : ‟Hello!‟; } alert(options.msg + „ „ + options.name); } Say_hello({name: „Akshay‟}); @akshaymathu 69
  • 72. Server Side Dynamism • At web server • Ability to execute a program in context of a web request – The program takes input from the request – The program creates a HTML page as output • Web browser understands only HTML • Embedded scripting technologies make it simpler – Allow the program to be inserted within an HTML page • PHP, ASP, JSP etc. @akshaymathu 72
  • 73. Client Side Dynamism • At web browser – Javascript • Ability to change properties of elements on the web page on user’s action – Text color, image source etc. – On click, on hover etc. • Ability to validate Form input without the round trip @akshaymathu 73
  • 74. Document Object Model • Window Object – Represents the browser window – All Javascript functions and variable are attached here by default • Document Object – Represents the page rendered inside the window – All HTML elements are available here • In the hierarchy they are attached @akshaymathu 74
  • 75. Manipulating the Web Page • Get programmatic handle of an HTML element via Document Object Model (DOM) var el = document.getElementByID( „a_unique_id‟); • Change desired property of the element el.src = “my_photo.png” @akshaymathu 75
  • 76. Changing Style • Access to inline style properties is via style object text_color = el.style.color • Change desired style attribute el.style.fontSize = “16px” @akshaymathu 76
  • 77. Responding to User Actions • Browser raises an event on user action – A few of them are onclick, onkeypress • A JavaScript function can be called when the event happens el.onclick = function(){ alert(„User clicked!‟); } @akshaymathu 77
  • 79. presents Creating Single Page Web App Series of 3 workshops Full Day Hands-on
  • 80. 1. Simple Web Pages • • • • • • • • Introduction to Web and its evolution Web page basics and HTML tags Styling elements JavaScript basics Introduction to DOM Changing style using JavaScript Simple DOM manipulation Responding to user actions @akshaymathu 80
  • 81. 2. Dynamic Web Pages • • • • Jquery JavaScript Framework Handling DOM events Getting data asynchronously via AJAX Client side dynamism using JavaScript templates • Simplify JS coding via CoffeeScript • Writing JS classes (prototypes) @akshaymathu 81
  • 82. 3. Single Page App • • • • • • Understanding MVC concepts Introduction BackboneJS and UnderscoreJS Using Backbone models, views and router Dealing with collections Custom events and their handlers Adjusting URLs for making browser buttons work @akshaymathu 82
  • 83. Document Object Model • Window Object – Represents the browser window – All Javascript functions and variable are attached here by default • Document Object – Represents the page rendered inside the window – All HTML elements are available here • In the hierarchy they are attached @akshaymathu 83
  • 84. Manipulating the Web Page • Get programmatic handle of an HTML element via Document Object Model (DOM) var el = document.getElementByID( „a_unique_id‟); • Change desired property of the element el.src = “my_photo.png” @akshaymathu 84
  • 85. JS Framework • Library for simplifying JS coding – Jquery is most popular • Provides simple interface and syntactic sugar for common JS work – Selecting DOM element – DOM traversal and manipulation – Event handling • Takes care of cross browser and cross version issues @akshaymathu 85
  • 86. Jquery • Takes care of cross browser and cross version issues • Library for simplifying JS coding – Everything is via functions – Same function for get and set • Provides simple interface and syntactic sugar for common JS work – Selecting DOM element – DOM traversal and manipulation – Event handling @akshaymathu 86
  • 87. Javascript Templates • Dynamically creates HTML code in JS – Data driven HTML – Allows variable substitution, looping and conditional statements • Generated HTML is inserted into the DOM for changing part of the page on-the-fly @akshaymathu 87
  • 88. Using Template <script type="text/x-jquery-tmpl” id=”photo"> <img src=“${photo_url}” title="${name}" /> </script> <script type="text/javascript”> template = $(‟#photo').template(); t_html = $.tmpl(template, data); $(“#container”).html(t_html); </script> @akshaymathu 88
  • 89. AJAX • A way in web browser to communicate with server without reloading the page • XmlHttpRequest (XHR) object can also create HTTP request and receive response – The request happens asynchronously • Other operations on page are allowed during the request – Received data does not render automatically • Data needs to be received in a callback function and used programmatically @akshaymathu 89
  • 90. AJAX Call $.ajax({ url: „/my_ajax_target‟, type: „POST‟, DataType: „json‟, data: {id: 2}, success: function(response){ alert(„Hello! „ + response.name); }, error: function(){ alert(„Please try later‟); } }); @akshaymathu 90
  • 91. CoffeeScript • A language with simple syntax – No semicolons and braces – Resembles to English – Indentation decides the code blocks • Compiles into Javascript – Provides syntactic sugar for boilerplate code • Manage variable scope • Class instead of prototype – Generates good quality, error free code @akshaymathu 91
  • 92. Cofeescript to Javascript greet_me = (name) -> greeting_word = 'Hello!' alert "#{greeting_word} #{name}” Compiles to greet_me = function(name) { var greeting_word; greeting_word = 'Hello!'; return alert("" + greeting_word + " " + name); }; @akshaymathu 92
  • 93. BackboneJS • Provides MVC structure for Javascript – The model object holds data – The view object handles visual elements and interactions – The controller object glues everything together and provides communication amongst objects • Custom Events help writing good code and eliminates use of global variables – The event object allows raising and handling custom events @akshaymathu 93
  • 94. BackboneJS code in Coffeescript class LoginModel extends Backbone.Model class LoginView extends Backbone.View initialize: => @template = $(‟#login_template').template() @render() render: => $(@el).html $.tmpl(@template, @model.toJSON()) events: 'click #login_btn' : ‟login_handler‟ login_handler: (ev) => window.mpq_track ‟Login Click‟ class LoginController extends Backbone.Router initialize: => @l_model = new LoginModel window.app_info @l_view = new LoginView model: model, el: ‟#login_div‟ @akshaymathu 94

Editor's Notes

  • #4: After first session add lines
  • #8: DNS Query that is done by Network stack is also very important