Ajax and JavaScript mit Ruby on Rails

66
JavaScript und Ajax mit Rails Jonathan Weiss http://blog.innerewut.de

description

A talk about Prototype and Scriptaculous and their integration in Ruby on Rails. Further RJS is introduced. Presented by Jonathan Weiss at the Rails Konferenz 2006.

Transcript of Ajax and JavaScript mit Ruby on Rails

Page 1: Ajax and JavaScript mit Ruby on Rails

JavaScript und Ajax mit Rails

Jonathan Weiss http://blog.innerewut.de

Page 2: Ajax and JavaScript mit Ruby on Rails

JavaScript

Page 3: Ajax and JavaScript mit Ruby on Rails
Page 4: Ajax and JavaScript mit Ruby on Rails
Page 5: Ajax and JavaScript mit Ruby on Rails
Page 6: Ajax and JavaScript mit Ruby on Rails
Page 7: Ajax and JavaScript mit Ruby on Rails
Page 8: Ajax and JavaScript mit Ruby on Rails
Page 9: Ajax and JavaScript mit Ruby on Rails

JavaScript - Die Wiederentdeckung

Page 10: Ajax and JavaScript mit Ruby on Rails

Was hat sich geändert?

Page 11: Ajax and JavaScript mit Ruby on Rails

Was hat sich geändert?

• Besinnung auf JS-Stärken und Usability

• Highlevel JavaScript Bibliotheken

• Tool-Support

Page 12: Ajax and JavaScript mit Ruby on Rails

JavaScript

• prototype OO

• Closures

• DOM manipulation

• ECMA basics mittlerweile durchgängig etabliert

• XmlHTTPObject

Page 13: Ajax and JavaScript mit Ruby on Rails
Page 14: Ajax and JavaScript mit Ruby on Rails

High-level JS Bibliotheken

Browser-unabhängige Programmierung von

• DOM Manipulationen

• Effekten

• Ajax

• UnitTests

Page 15: Ajax and JavaScript mit Ruby on Rails

Entwickler kann sich wieder auf

Applikation konzentrieren

Page 16: Ajax and JavaScript mit Ruby on Rails

Was hat das jetzt mit Rails zu tun?

Page 17: Ajax and JavaScript mit Ruby on Rails
Page 18: Ajax and JavaScript mit Ruby on Rails
Page 19: Ajax and JavaScript mit Ruby on Rails

Prototype und Scriptaculous

Page 20: Ajax and JavaScript mit Ruby on Rails

$ und $$

Page 21: Ajax and JavaScript mit Ruby on Rails
Page 22: Ajax and JavaScript mit Ruby on Rails

Scriptaculous Effekte

Page 23: Ajax and JavaScript mit Ruby on Rails

In & Out

• Appear / Fade

• BlindDown / BlindUp

• SlideDown / SlideUp

• Grow / Shrink

Page 24: Ajax and JavaScript mit Ruby on Rails

Out

• SwitchOff

• Fold

• Puff

• Squish

• DropOut

Page 25: Ajax and JavaScript mit Ruby on Rails

“Schau hier!”

• Shake

• Highlight

• Pulsate

Page 26: Ajax and JavaScript mit Ruby on Rails

Ajax Recap

Page 27: Ajax and JavaScript mit Ruby on Rails

AJAX

Asynchronous JavaScript And XML

Page 28: Ajax and JavaScript mit Ruby on Rails

AJAH ?

Asynchronous JavaScript And HTML

Page 29: Ajax and JavaScript mit Ruby on Rails

AJAJ ?

Asynchronous JavaScript And

JavaScript

Page 30: Ajax and JavaScript mit Ruby on Rails

GET http://example.com/

TEXT/HTML

<html><body>...</body></html>

Normaler Request

Page 31: Ajax and JavaScript mit Ruby on Rails

POST http://example.com/posts/new

Ajax Request

TEXT/XML

<?xml .... ><people> <person id=’1’>Alf</person></people>

AJAX Request

Page 32: Ajax and JavaScript mit Ruby on Rails

POST http://example.com/posts/new

Ajax Request

TEXT/HTML

<div> <p> Post saved</p></div>

AJAX Request mit HTML Response

Page 33: Ajax and JavaScript mit Ruby on Rails

Ajax

Einfacher Request

Page 34: Ajax and JavaScript mit Ruby on Rails

Ajax

Einfacher Request mit callbacks

Page 35: Ajax and JavaScript mit Ruby on Rails

Ajax

DOM Updates

Page 36: Ajax and JavaScript mit Ruby on Rails

http://wiki.script.aculo.us

Page 37: Ajax and JavaScript mit Ruby on Rails

Was hat das jetzt mit Rails zu tun?

Page 38: Ajax and JavaScript mit Ruby on Rails

Rails JavaScript Helper

Page 39: Ajax and JavaScript mit Ruby on Rails

http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html

Page 40: Ajax and JavaScript mit Ruby on Rails

in .rhtml:

link_to_remote

Page 41: Ajax and JavaScript mit Ruby on Rails

in .rhtml:

Browser bekommt:

link_to_remote

Page 42: Ajax and JavaScript mit Ruby on Rails

in .rhtml:

Page 43: Ajax and JavaScript mit Ruby on Rails

in .rhtml:

Browser bekommt:

Page 44: Ajax and JavaScript mit Ruby on Rails

in .rhtml:

form_remote_tag

Page 45: Ajax and JavaScript mit Ruby on Rails

in .rhtml:

Browser bekommt:

form_remote_tag

Page 46: Ajax and JavaScript mit Ruby on Rails

RJS -

Rails JavaScript Templates

Page 47: Ajax and JavaScript mit Ruby on Rails

GET http://example.com/

TEXT/HTML

Page 48: Ajax and JavaScript mit Ruby on Rails

POST http://example.com/posts/new

Ajax Request

TEXT/JavaScript

Page 49: Ajax and JavaScript mit Ruby on Rails

eval( )

Page 50: Ajax and JavaScript mit Ruby on Rails

in .rjs:

Page 51: Ajax and JavaScript mit Ruby on Rails

in .rjs:

Browser bekommt:

Page 52: Ajax and JavaScript mit Ruby on Rails

new.rjs

Controller

Page 53: Ajax and JavaScript mit Ruby on Rails

RJS Inline im Controller

Page 54: Ajax and JavaScript mit Ruby on Rails

RJS Selectoren

Browser bekommt:

Page 55: Ajax and JavaScript mit Ruby on Rails

Beliebiges JavaScript mit `<<`

Browser bekommt:

Page 57: Ajax and JavaScript mit Ruby on Rails

Testen und Debuggen

Page 58: Ajax and JavaScript mit Ruby on Rails

config/development.rb

Debugging RJS Ausgabe im Browser

Page 59: Ajax and JavaScript mit Ruby on Rails

ARTS: Another RJS Test System

http://glu.ttono.us/articles/2006/05/29/guide-test-driven-rjs-with-arts

Page 60: Ajax and JavaScript mit Ruby on Rails

• Console / JavaScript Shell

• DOM Inspector

• XMLHTTPRequest Tracer

• Debugger

http://joehewitt.com/software/firebug/

Page 61: Ajax and JavaScript mit Ruby on Rails

• DOM Inspector

• Verschiedene Tools rund um Cookies, Forms, CSS, Bilders, Header, ....

http://chrispederick.com/work/webdeveloper/

Webdeveloper

Page 62: Ajax and JavaScript mit Ruby on Rails

• Profiler

• Debugger

• JavaScript Shell

http://www.mozilla.org/projects/venkman/

Venkman

Page 63: Ajax and JavaScript mit Ruby on Rails

• DOM Inspector

• JavaScript Debugger

http://nightly.webkit.org/

Nightly + Drosera

Page 64: Ajax and JavaScript mit Ruby on Rails

http://www.microsoft.com/downloads/details.aspx?FamilyID=2f465be0-94fd-4569-b3c4-dffdf19ccd99&DisplayLang=en

MS Script Debugger

Page 65: Ajax and JavaScript mit Ruby on Rails

Fin

http://blog.innerewut.de/files/jweiss-rails-konferenz-2006.pdf

Page 66: Ajax and JavaScript mit Ruby on Rails

Links

http://api.rubyonrails.org

http://mir.aculo.us/stuff/AdventuresInJavaScriptTesting.pdf

http://mir.aculo.us/stuff/COR_20060413_RailsAjax.pdf

http://mir.aculo.us/stuff/orcreatehappyusers.pdf

http://www.slash7.com/articles/2006/07/26/javascript-boot-camp-tutorial