19
AmplifyJS Visnupriya. J. R © Spritle Software Private Limited | http://www.spritle.com

Intro to Amplifyjs by Visnupriya

Embed Size (px)

Citation preview

Page 1: Intro to Amplifyjs by Visnupriya

© Spritle Software Private Limited | http://www.spritle.com

AmplifyJS

Visnupriya. J. R

Page 2: Intro to Amplifyjs by Visnupriya

© Spritle Software Private Limited | http://www.spritle.com

Overview

• AmplifyJS is a set of components designed to solve common web application problems using simple API.

• A JavaScript Component Library.

• Produced by appendTo().

Page 3: Intro to Amplifyjs by Visnupriya

© Spritle Software Private Limited | http://www.spritle.com

Features

• Ajax Request Management

• Client Side Component Communication • Client Side Browser & Mobile Device Storage

Page 4: Intro to Amplifyjs by Visnupriya

© Spritle Software Private Limited | http://www.spritle.com

Request API

• It is an abstraction layer.

• It sets out to separate the data retrieval and caching mechanisms from data requestors.

Page 5: Intro to Amplifyjs by Visnupriya

Spritle Software Private Limited | http://www.spritle.com

Request Usage

amplify.request.define( resourceId, requestType , settings )

amplify.request.define( resourceId, function resource ) // Define a custom resquest

Define a resource:

amplify.request( resourceId, data, callback)

Request a resource:

Page 6: Intro to Amplifyjs by Visnupriya

© Spritle Software Private Limited | http://www.spritle.com

Request Types

• Built-in Types• Ajax type

• Custom Types• By adding “amplify.request.types” hashes• an option to define custom one-off types for single

requests

Page 7: Intro to Amplifyjs by Visnupriya

Spritle Software Private Limited | http://www.spritle.com

Request Example

amplify.request.define( “ResourceID", "ajax", {url: “path/to/url/{type}",dataType: "json“,type: “GET”

});

amplify.request( "ResourceID ", { type : “test” },function(data){ // do some thing here});

Page 8: Intro to Amplifyjs by Visnupriya

© Spritle Software Private Limited | http://www.spritle.com

Request Data Handling• Pre-defined Data.

• Provide data in the definition• Data provided with the request will override data

provided in the definition

• URL substitution/routing.• define variables in the URL of an ajax request by

wrapping the variable in curly braces, e.g., "/user/{id}"

• Decoders.• Built-in Decoders• Custom Decoders - amplify.request.decoders

Page 9: Intro to Amplifyjs by Visnupriya

Spritle Software Private Limited | http://www.spritle.com

Request Exampleamplify.request.decoders.sample = function ( data, status, xhr, success, error ) { if ( data.status === "success" ) { success( data.data ); } else if ( data.status === "fail" || data.status === "error" ) { error( data.message, data.status ); } else { error( data.message , "fatal" ); } };amplify.request.define( “ResourceID", "ajax", {

url: “path/to/url/{id}",dataType: "json“,decoder: “sample”,

});

Page 10: Intro to Amplifyjs by Visnupriya

© Spritle Software Private Limited | http://www.spritle.com

Request Caching

• In-memory Cache.• cache: boolean• cache: number

• Named Caches.• cache: string

• Persistent Client-side Cache• cache: "persist“ // default storage• cache: "localStorage“ // specified storage

• Custom Caches• amplify.request.cache

Page 11: Intro to Amplifyjs by Visnupriya

© Spritle Software Private Limited | http://www.spritle.com

Store API

• Persistent client-side storage systems.• Supports IE 5+, Firefox 2+, Safari 4+, Chrome,

Opera 10.5+, iPhone 2+, Android 2+ .• Provide a consistent API to handle storage

cross-browser.• Handle serializing to and from a JavaScript

object using JSON serialization

Page 12: Intro to Amplifyjs by Visnupriya

Spritle Software Private Limited | http://www.spritle.com

Store API Usage

amplify.store( key, value , options )

Store a value:

amplify.store( key)

amplify.store( ) // all values

Get a value:

Page 13: Intro to Amplifyjs by Visnupriya

Spritle Software Private Limited | http://www.spritle.com

Store API Usage

amplify.store.StorageType( key,value)Eg:amplify.store.sessionStorage( "explicitExample" ,{ foo: “bar”});

Store data explicitly with session storage:

amplify.store( key, value, {expires : 3000})

Expiration:

Page 14: Intro to Amplifyjs by Visnupriya

© Spritle Software Private Limited | http://www.spritle.com

Pub/Sub API• Facilitate the Publish and Subscribe messaging

pattern in your front-end application.• The idea is that someone is broadcasting one or

more messages (publishing) and someone else is listening to one or more messages (subscribing).

• a slightly cleaner interface.• prevents collisions between custom events and

method names.• allows a priority.

Page 15: Intro to Amplifyjs by Visnupriya

Spritle Software Private Limited | http://www.spritle.com

Subscribe API Usage

amplify.subscribe( topic, function callback ) amplify.subscribe( topic, context, function callback )

amplify.subscribe( topic, function callback, priority )

amplify.subscribe( topic, context, function callback, priority )

Subscribe to a message

Page 16: Intro to Amplifyjs by Visnupriya

Subscribe API Usage

Spritle Software Private Limited | http://www.spritle.com

amplify.unsubscribe( topic, function callback )

Remove a subscription

Page 17: Intro to Amplifyjs by Visnupriya

Spritle Software Private Limited | http://www.spritle.com

Publish API Usage

amplify.publish( topic )

amplify.publish( topic , arg1, arg2)

Publish a message

returns a Boolean indicating whether any subscriptions returned false

Page 18: Intro to Amplifyjs by Visnupriya

© Spritle Software Private Limited | http://www.spritle.com

Code Walk-through with Samples

Page 19: Intro to Amplifyjs by Visnupriya

© Spritle Software Private Limited | http://www.spritle.com

Questions?

Thank you