= Week 9, continued :author: Anna Whitney :v: l9gEGB0eOps [t=0m0s] == Introduction * Today's lecture is being shot in 3D! * David calls volunteer Ariana up to demonstrate watching a video trailer on the Oculus Rift. * Donuts available today at 4 PM at the SEAS Advising Fair in Maxwell Dworkin. [t=4m12s] == Anonymous Functions and Callbacks * An *anonymous function* is a function without a name. It can be bound to an event, or passed to another function. * When we pass a function like this (anonymous or otherwise) to another function or to an event handler to be called when something happens or when some data is ready, it's called a *callback* (or callback function). [t=5m25s] == Ajax * Ajax once upon a time stood for "Asynchronous JavaScript And XML", but now refers more generally to the technology whereby a browser can request more data from a server after a page has already loaded, without reloading the whole page. * In Problem Set 7, you're not using Ajax - when the user fills out a form or clicks a button and you generate dynamic content, that content is being generated entirely on the server and the browser reloads the page or goes to a new page to show it to you. * However, in Problem Set 8, you'll use JavaScript and Ajax to make dynamic changes a little more seamlessly. * There was, once upon a time in the '90s, an HTML tag called `` that did just that - made text blink on the screen. Today's browsers don't support it, because it's heinous, but we can reimplement it in JavaScript, as in http://cdn.cs50.net/2015/fall/lectures/9/w/src9w/blink.html.src[`blink.html`]: + [source, html] ---- blink
hello, world
---- ** We've given the `
` a unique identifier of `greeting`, so we can access it by `id` in either CSS or JavaScript. ** We then use CSS in a `