Event-based programming Prof. Tom Austin San Jos State University - - PowerPoint PPT Presentation

event based programming
SMART_READER_LITE
LIVE PREVIEW

Event-based programming Prof. Tom Austin San Jos State University - - PowerPoint PPT Presentation

CS 152: Programming Language Paradigms Event-based programming Prof. Tom Austin San Jos State University Inline JavaScript <html> JavaScript <input type='button' onclick=' alert("Hello!"); ' value='Say hi' />


slide-1
SLIDE 1

CS 152: Programming Language Paradigms

  • Prof. Tom Austin

San José State University

Event-based programming

slide-2
SLIDE 2

Inline JavaScript

<html> <input type='button'

  • nclick='alert("Hello!");'

value='Say hi' /> </html>

JavaScript

slide-3
SLIDE 3

The "better" approach

<html> <input id='thebutton' type='button' value='Say hi' /> <script type="text/javascript"> var btn = document. getElementById('thebutton'); btn.onclick = function() { alert('Groovy'); }; </script> </html>

Note the id attribute

slide-4
SLIDE 4

Perhaps better still

<html> <input id='thebutton' type='button' value='Say hi' /> <script type="text/javascript"> var btn = document. getElementById('thebutton'); function sayGroovy() { alert('Groovy'); } btn.addEventListener('click', sayGroovy); </script> </html>

slide-5
SLIDE 5

function sayGroovy() { alert('Groovy'); } btn.addEventListener('click', sayGroovy); btn.addEventListener('click', function(){ alert("Bogus");} );

slide-6
SLIDE 6

function sayGroovy() { alert('Groovy'); btn.removeEventListener('click', sayGroovy); } btn.addEventListener('click', sayGroovy); btn.addEventListener('click', function(){ alert("Bogus");} );

slide-7
SLIDE 7

Note that JavaScript (in a browser) is single threaded. An event runs to completion before the next event begins.

slide-8
SLIDE 8

Importing events in Node.js var EE = require('events').EventEmitter;

Choose whatever name you like events is a module

slide-9
SLIDE 9

var EE = require('events').EventEmitter; var ee = new EE(); die = false; ee.on('die', function() { console.log("I'm melting!!! Oh, what a world..."); die = true; }); setTimeout(function() { ee.emit('die'); }, 100); while (!die) {} console.log('done');

slide-10
SLIDE 10

TCP Server example

var net = require('net'); var eol = require('os').EOL; var srvr = net.createServer(); srvr.on('connection', function(client) { client.write('Hello there!' + eol); client.end(); }); srvr.listen(9000);

slide-11
SLIDE 11

$ node tcpserver.js $

$ telnet 127.0.0.1 9000 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Hello there! Connection closed by foreign host. $

slide-12
SLIDE 12

Homework and Lab

  • Lab: Write a chat server