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

Ajax and JavaScript mit Ruby on Rails

Embed Size (px)

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.

Citation preview

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