Tutorials: Voodoo’s Introduction to Javascript🏚️, W3 Schools, JavaScript Garden, javascript.info, The Principles of Object-Oriented JavaScript
Profiling: spy-js
Code documentation: JSDoc
FAQ: Meta-FAQ
Minifiers: JSMin🏚️, Dean Edwards Packer, MiniME, Closure Compiler, Wikipedia list
Java implementations: Nashorn
Demos: Chrome Experiments
json.org
JSONLint
Node.js
Deno: personal notes
hapi
State of JavaScript
personal notes
Articles and videos
- Pnglets🏚️ by (1999) ► Some (client-side) JavaScript code to write PNG images on the flight.
- XML and Java: A potent partnership, Part 3 — Learn how to integrate Java and JavaScript, two popular programming languages by (August 1999) ► This is an introduction to Rhino, a JavaScript interpreter written in Java.
- Javascript Closures by (April 2004) ► A detailed description of closures.
- Errors and AJAX by (May 11th, 2005) ► The author describes an implementation logging the client-side JavaScript errors on the server, so they can be analysed and fixed.
- Life After Ajax? by (June 29th, 2005) ► The author asks for higher level technologies (e.g. languages) instead of using AJAX which is too difficult to debug.
- Scope chain of JScript Functions🚫 by (July 26th, 2006) ► A shorter explanation of the scope chain.
- Best Practices in Javascript Library Design by (August 17th, 2007) ► gives some advice for library developers: orthogonality, API as small as possible, encapsulation, documentation, testing…
- The Lively Kernel by and (January 24th, 2008) ► A demo of the Lively Kernel, a kind of SmallTalk reincarnation, a self-supporting computing kernel written in JavaScript and using SVG.
- Drop-in JavaScript Performance by (January 30th, 2009) ► A description of the improvements coming in the future releases of the Browsers.
- YUI Theater — John Resig: “The DOM Is a Mess”↑🗑️ by (February 2nd, 2009) ► How to work around the bugs of the Browser JS engines or their missing features, how to not pollute outside code…
- JavaScript: The Good Parts↑ by (February 28th, 2009) ► Some do’s and don’t’s for JavaScript.
- YUI Theater — PPK (Peter-Paul Koch): “JavaScript Events”🗑️ by (April 23rd, 2009) ► After speaking about JavaScript implementations on usual computers (key events, change event, and event bubbling vs. event capturing), Peter-Paul Koch describes the mess with current JS implementation on mobile phones and gives some rules to deal with them.
- Speed Up Your JavaScript by (June 5th, 2009) ► Some low-level JavaScript optimisations: taking care of variable scope, data access (literal vs. variable vs. object property vs. array item), loops, and DOM.
- Nicholas Zakas: Scalable JavaScript Application Architecture by (September 2009) ► How to define a layered JavaScript framework: base library, application core, sandbox, and modules. The slides are available here.
- Project JSMeter: JavaScript Performance Analysis in the Real World🗑️ by , , , and (March 28th, 2010) ► Two Microsoft guys have analysed how JS is really used on the Web.
- Event delegation in JavaScript by (June 30th, 2010) ► An explanation of event bubbling and capturing.
- Building a JavaScript-Based Game Engine for the Web by (July 10th, 2010) ► explains his technical choices and some of the performance tricks he used to implement Aves Engine, a 2D/isometric game engine.
- Philip Tellis: Measuring the Web with Boomerang by (November 8th, 2010) ► The presentation of Boomerang, a JavaScript library used to measure latency and bandwidth and to send them back to the server.
-
Strict Mode Is Coming To Town🗑️ by (December 14th, 2010) ► A short introduction to the
strict
mode. - Introducing HTML 5 Web Workers: Bringing Multi-threading to JavaScript by (2011) ► A short introduction to Web Workers.
- Determine an Image's Type using the JavaScript FileReader by (2011) ► How to check a file type by extracting and checking its Magic Number.
- Use JavaScript to Add a Read More Link When Text is Copied From Your Site by (January 2011) ► A presentation of Tynt Insight service which adds a link to text cut ’n pasted from your site. I do not see the interest of this: people (probably the majority) who don’t want the link will delete it, people who want the link could add it by themselves.
-
7 minutes on recent DOM APIs by (September 29th, 2011) ►
element.classList
,element.dataset
,window.matchMedia()
,element.textContent
, andelement.matchesSelector()
. - Utilizing Web Workers and Shared Web Workers by (December 8th, 2011) ► The same with Shared Web Workers.
- JS Coding Standards⇊ by (2012) ► Some JavaScript Coding Rules… very badly explained.
- Douglas Crockford: Principles of Security by (March 5th, 2012) ► There is nothing new here, but, as usual with , this presentation contains some good information.
- Fluent 2012: Steve Souders, "Your Script Just Killed My Site" by (May 30th, 2012) ► Loading synchronously a third party script may result in blocking your site.
-
Best of Fluent 2012 - You don't need a Framework for that! by (May 31st, 2012) ► Some simple tasks can be done without loading jQuery, but by using
classList
,getElementById
,getElementsByClassName
,querySelector
,querySelectorAll
, data- attributes, CSS. - Paul Irish, "JavaScript Development Workflow of 2013" by (June 1st, 2012) ► A quick presentation of the current JavaScript development tools.
- Fluent 2012: Gary Flake, "Bookmarklets as Applications" by (June 1st, 2012) ► The technical tricks used by Clipboard.com to capture a part of a page and redisplay it in their site.
- Just cause it’s JavaScript, doesn’t give you a license to write rubbish by (June 6th, 2012) ► Software best practices can and should be used with JavaScript.
- Adventures in Single Page Applications by (October 15th, 2012) ► Miscellaneous points: pros and cons of Single Page Applications, the MVC’s controller problem, namespaces vs. modules and packages, view.json…
- Understand memory leaks in JavaScript applications — Detect and address memory issues🗑️ by (November 6th, 2012) ► The title says it all.
- The Joys of Static Memory JavaScript🗑️ by (October 1st, 2013) ► Limiting the performance impact of garbage collection by using object pools.
- Ariya Hidayat: Next-Generation JavaScript Language Tooling by (November 7th, 2013) ► Some tools for static analysis (finding code patterns, computing cyclomatic complexity), code transformation and dynamic analysis (code coverage, performance).
- Segregated DOM by (January 16th, 2014) ► Hiding the jQuery technical details below an abstraction layer.
- Comment le hoisting fonctionne en JavaScript et pourquoi by (September 1st, 2014) ► A not so clear explanation of hosting, with a lot of misspellings.
- node.js vs Java nashorn by (June 29th, 2015) ► Some performance measurement of Nashorn and Node.js.
-
DOMException: The play() request was interrupted by (June 16th, 2017) ► How to properly use
video.play()
. -
Abortable fetch by (October 2nd, 2017) ► The
AbortController
andAbortSignal
API is at last defined, Firefox has already implemented it. -
SmooshGate FAQ by (March 19th, 2018) ► The story of
Array.prototype.flatten
breaking MooTols. - Coding Challenge 125: Fourier Series by (December 20th, 2018) ► The title says it all.
- 🚀⚙️ JavaScript Visualized: the JavaScript Engine by (December 13th, 2019) ► A basic description of how V8 manages JavaScript.
- WebSockets for fun and profit — Seamless communication is a must on the modern web. As internet speeds increase, we expect our data in real time. To address this need, WebSocket, a popular communication protocol finalized in 2011, enables websites to send and receive data without delay. With WebSockets, you can build multiplayer games, chat apps, and collaboration software that work on the open web. by (December 18th, 2019) ► An introduction to WebSockets. It speaks only positively about this technology, the comments give a less biased opinion.
- Introducing Env: a better way to read environment variables in JavaScript by (February 16th, 2021) ► describes his library to simplify using environment variables.
- Does ES6 make JavaScript frameworks obsolete? — Is ES6 the JavaScript release that will finally free us from the endless cycle of frameworks? by and (November 10th, 2021) ► As regularly published for many years, yet another article announcing the death of the JavaScript frameworks.
- JavaScript APIs You Don’t Know About by (September 14th, 2022) ► A short presentation of Page Visibility API, Web Share API, Broadcast Channel API, and Internationalization API.
- JS13K 2022 winners 🏆 — The eleventh annual js13kGames coding competition, challenging participants to create games in 13kB or less of JavaScript in a month, just wrapped up. This post highlights the top thirteen entries. by (October 6th, 2022) ► The title says it all.
- JavaScript Generators — Cas pratiques d'utilisation (Héla BEN KHALFALLAH)↓ by (April 13th, 2023) ► A very slow and bad presentation of generator functions.
- Bun 1.0 is here by , , and (September 7th, 2023) ► The title says it all.
- OpenJS Launches New Collaboration to Improve Interoperability of JavaScript Package Metadata — The OpenJS Foundation has launched a new effort to iterate on the informal standardization of package.json and improve the interoperability of JavaScript package metadata for application developers. by (February 27th, 2024) ► The subtitle says it all.
-
JavaScript's ??= Operator: Default Values Made Simple — A guide to using ??= in JavaScript to handle null and undefined values elegantly by (February 27th, 2024) ► A description of the
??=
operator. - Why am I writing a JavaScript toolchain in Zig? by (November 21st, 2024) ► explains why he is creating a toolchain, Jam, in Zig. Currently, Jam is only a JavaScript parser.
-
Tutorials
- Scoping by (July 12th, 2012) ► An explanation of JavaScript hoisting.
- Object Oriented Programming by (July 12th, 2012) ► How to perform some common OOP patterns in JavaScript: defining a class, deriving a class, calling a method of the super-class from a derived class…
-
Promises
- We have a problem with promises by (May 18th, 2015) ► A list of mistakes done when using promises.
- JavaScript Promises: an introduction by (January 18th, 2021) ► The title says it all.
-
History
- JavaScript: Past, Present, and Future🚫 by (1998) ► This a short history of JavaScript up to the 1.4 release and some hindsight on its future.
- The Deep Roots of Javascript Fatigue by (March 15th, 2016) ► A short history of the language, the Browsers, the toolkits, and the transpilers.
-
ECMAScript 5
- Changes to JavaScript, Part 1: EcmaScript 5 by , , and (May 18th, 2009) ► A presentation of the new features and cleanups of EcmaScript 5.
- Douglas Crockford: The State and Future of JavaScript by (November 4th, 2009) ► The history of ECMAScript 5 (ES3.1 vs. ES4, IBM’s 754r…) and the future of the language (Harmony).
-
ECMAScript 6
- Dave Herman: The Future of JavaScript by (November 4th, 2011) ► The new features currently considered for ECMAScript 6: modules, block scoping, generators, proxies, binary data,…
- Brendan Eich on JavaScript at 17 - O'Reilly Fluent 2012 by (May 31st, 2012) ► The rational of ES6 new features: easier to write applications, libraries, and code generators.
- Brenda Eich on JavaScript at 18: Legal to Gamble - Fluent 2013 by (May 30th, 2013) ► This is the same content as the previous year: the new JavaScript features added in ES6, asm.js and, once again, a FPS demo.
- John Paul - ES6 Right Now by (September 13th, 2014) ► The presentation of some new JavaScript features and how to use some among them today.
- A Look at the Newly Approved ECMAScript 2015 Features by (August 2015) ► A very quick presentation of some ES6 features.
- Intro to Web Workers by (August 17th, 2018) ► The title says it all.
-
The busy JavaScript developer’s guide to ECMAScript 6
-
Variable declarations and more in the new JavaScript — Syntactic sugar strengthens core features in ECMAScript 6🗑️ by (September 29th, 2016) ► String templates and interpolation,
let
andconst
, destructuring assignment. -
↪Functional enhancements in ECMAScript 6 — Using arrows, generators, and other functional elements in your JavaScript programs🗑️ by (September 29th, 2016) ► Destructuring in function declarations, default parameters, rest parameters, spread operator, arrow functions, generator functions and
yield
,for
…of
loops. - ↪Classes in JavaScript — Understanding properties and inheritance🗑️ by (November 8th, 2016) ► Class definition, getters and setters, the preservation of the prototype chain mechanism, and static properties and fields.
-
↪New objects and types in the standard library — Using modules, collections, proxies, and more in the new JavaScript🗑️ by (December 8th, 2016) ► Modules, symbols, collections (
Map
andSet
), weak references, and proxies.
-
Variable declarations and more in the new JavaScript — Syntactic sugar strengthens core features in ECMAScript 6🗑️ by (September 29th, 2016) ► String templates and interpolation,
-
Web Dev Simplified
- Differences Between Var, Let, and Const by (November 10th, 2018) ► The title says it all.
- JavaScript ES6 Arrow Functions Tutorial by (January 3rd, 2019) ► The title says it all.
-
JavaScript Promises In 10 Minutes by (January 17th, 2019) ► A basic presentation of
Promise
. -
8 Must Know JavaScript Array Methods by (February 2nd, 2019) ►
filter
,map
,find
,forEach
,some
,every
,reduce
, andincludes
. -
JavaScript Async Await by (February 9th, 2019) ► A basic presentation of
async
/await
. - Why Is Array/Object Destructuring So Useful And How To Use It by (July 20th, 2019) ► The title says it all.
- Learn Fetch API In 6 Minutes by (October 15th, 2019) ► The title says it all.
- How To Build JavaScript Projects Without Getting Stuck↓ by (November 17th, 2020) ► It is obvious that needs to do some advertising for his courses, but this presentation is very painful, long and slow.
- Learn JavaScript DOM Traversal In 15 Minutes by (November 21st, 2020) ► The API for querying the DOM.
- Learn DOM Manipulation In 18 Minutes by (December 8th, 2020) ► The basics of DOM manipulation.
-
5 Must Know JavaScript Features That Almost Nobody Knows by (February 20th, 2021) ► The nullish coalescing operator, the optional chaining operator, styling console output, declaring properties with a variable of the same name, and
script
’sdefer
. -
5+ Must Know HTML Tags That Almost Nobody Knows by (February 27th, 2021) ►
<fieldset>
,<legend>
,<datalist>
,<input type="color">
,<input type="time">
,<progress>
, Open Graph meta tags,<sub>
,<sup>
,<picture>
, and<template>
. -
5 MORE Must Know JavaScript Features That Almost Nobody Knows by (March 9th, 2021) ► Block statements,
in
operator, tagged template literals, generator functions, and dynamic imports. -
Why I Don't Use Else When Programming by (March 23rd, 2021) ►
else
considered harmful. - Is This The Best JavaScript Extension? by (May 1st, 2021) ► A presentation of Quokka.js.
- Why I Don't Use Semicolons In JavaScript by (May 4th, 2021) ► ’s opinion: do whatever you want and use Prettier to format the code and to add/remove semicolons according to the project’s formatting policy.
- How I Setup And Customize VSCode↓ by (May 8th, 2021) ► The title says it all. This has little interest.
- Why You Might Want To Make Your Website Slower by (March 22nd, 2022) ► Some basic UX advice.
- Learn JavaScript Hoisting In 5 Minutes by (July 19th, 2022) ► An explanation of hoisting.
-
Learn Every CSS Viewport Unit In 10 Minutes by (July 30th, 2022) ► The title says it all:
vw
,vh
,vmin
,vmax
, and their new large, small, and dynamic variations. - Learn JavaScript Scoping In 10 Minutes by (August 13th, 2022) ► An explanation of scopes.
- How To Setup Prettier by (December 27th, 2022) ► An introduction to Prettier, a code formatter.
- What Is Email Only Authentication - Magic Link Auth by (January 28th, 2023) ► A presentation and a basic implementation example of email authentication.
- Is Learning TypeScript A Waste Of Time? by (February 11th, 2023) ► An explanation that using TypeScript’s types is a quick win.
- How This Test Saved Kent’s Site by (May 7th, 2024) ► A bad idea if pushed too far: relying on the fact that explicit test assertions also test implicit ones.
- I Can’t Believe They Added AI To The Browser by (November 26th, 2024) ► A short presentation of the built-in AI APIs introduced in Chrome Canary.
-
WebAssembly
- Emscripting a C library to Wasm by (April 12th, 2018) ► An introduction to Emscripten by using WebP codec as an example.
- Extending the browser with WebAssembly by (August 22nd, 2018) ► The same, but less detailed, with the AV1 codec.
- Emscripten’s embind by (August 27th, 2018) ► Embind simplifies the declaration of the exported C/C++ functions.
- WebAssembly Threads ready to try in Chrome 70 by (October 30th, 2018) ► Pthreads are now supported (as a trial) for WASM in Chrome 70.
- Emscripten and npm by (January 15th, 2019) ► A detailed description on how to integrate the generation of the WebAssembly components in the npm build using Docker.
- Replacing a hot path in your app's JavaScript with WebAssembly — It's consistently fast, yo by (February 15th, 2019) ► Generating Wasm for a very simple piece of code from C, Rust and AssemblyScript.
- WebAssembly brings Google Earth to more browsers by (June 20th, 2019) ► Google Earth is now running on WebAssembly and the future of this one.
- The State of WebAssembly – 2022 and 2023 by (January 30th, 2023) ► The summary of WebAssembly evolution for 2022 and some predictions for 2023.
- Boostez vos applications Java avec WebAssembly (Philippe Charrière) by (April 26th, 2023) ► A messy demonstration of creating a WASM plugin for a Java application using Extism.
-
Mashups
- Mashups: The new breed of Web app — An introduction to mashups🗑️ by (August 8th, 2006) ► A good introduction to mashups: the technological part is the repetition of the usual stuff, but the description of the challenges is interesting.
-
Web services from well-known sites
- Build AJAX-Based Web Maps Using ka-Map by (August 10th, 2005) ► This ka-Map stuff seems rather scary to develop with…
- eBay Developer Challenge 2006🗑️ by (December 5th, 2005) ► eBay tries to do the same as Google: inviting hacker to build killer apps on top of their APIs.
- Seattle Movie Finder: An AJAX- and REST-Powered Virtual Earth Mashup by (March 1st, 2006) ► An example of using MSN Virtual Earth, but this article is not very clear.
-
Google Maps
- Hacking Maps with the Google Maps API by (August 10th, 2005) ► A simple example of using the Google’s API.
-
YouTube
- Google I/O 2011: YouTube's iframe Player: The Future of Embedding by , , and (May 11th, 2011) ► A description of how is chosen Flash vs. HTML 5 rendering, the differences between the JavaScript and AS3 APIs, and some coding best practices.
-
Server side
- Isaac Schlueter and Matt Hackett: Server-side JavaScript by and (September 2009) ► A much too quick presentation of server side JS and a tic-tac-toe implementation using Narwhal and Jack.
- YUI Theater — Elijah Insua: “jsdom: a CommonJS Implementation of the DOM” (18 min.)🗑️ by (May 2010) ► A presentation of the interest of JSDom, a JavaScript DOM Level 1 implementation.
-
Node.js
- YUI Theater — Ryan Dahl: “Introduction to NodeJS” (58 min.)🗑️ by (May 2010) ► A presentation of Node.js, the rational of its design (using an event loop and having no blocking call - in particular I/Os -), and some code samples.
- Node.js: JavaScript on the Server by (July 28th, 2010) ► The same talk, but the Q&A are different.
- YUI Theater — Dav Glass: “Using Node.js and YUI 3″ (36 min.)🗑️ by (September 2010) ► A demonstration of Node.js and YUI3 used to generate the HTML on the server and to transmit it to the browser.
- YUI Theater — Ryan Dahl: “Node.js Roadmap” (48 min.)🗑️ by (November 10th, 2010) ► The current status of Node.js and the new improvements: fast buffers, long stack traces, and stream interfaces (with some demos of that last one).
- YUI Theater — Dav Glass: “YUI 3 and Node.js (Not Just For Web Pages) ” (51 min.)🗑️ by (March 29th, 2011) ► Some small examples (SMTP, YUIDoc…) of using YUI with Node.js to code the server side, a performance improvement, and Qs&As.
- Use Node.js as a full cloud environment development stack — Embrace the concurrency model using asynchronous I/O via callbacks, and build a chat server🗑️ by and (April 25th, 2011) ► An introduction to Node.js with the example of a chat server.
- First Stable Build of NodeJs on Windows Released🚫 by (November 7th, 2011) ► The title says it all.
- Developing mobile apps with Node.js and MongoDB, Part 1: A team's methods and results — Speeding time to value of systems of engagement🗑️ by , , , and (September 5th, 2013) ► Some IBM interns prototype a new implementation of IBM Passes using Node.js and MongoDB, getting more performance than using Java and DB2.
- ↪Developing mobile apps with Node.js and MongoDB, Part 2: Hints and tips — Avoiding the pitfalls of using an alternative stack🗑️ by , , , and (August 19th, 2013) ► Some pieces of advice when using Node.js.
- Use JavaScript closures efficiently — Avoid memory leaks in your Node.js apps🗑️ by and (May 2nd, 2016) ► The title says it all.
- Use the Node.js event loop effectively — How to avoid unexpected results in your Node.js apps🗑️ by (April 11th, 2017) ► A very very basic introduction to the event loop and callbacks.
- Understanding the Node.js event loop phases and how it executes the JavaScript code. by (February 8th, 2020) ► A description of the event loop.
-
Deno
- Deno 2 is here… will it actually kill Node.js this time? by (September 24th, 2024) ► Deno 2.0 has been released.
- Will Deno 2.0 Replace Node.js? by (September 24th, 2024) ► The same, but presented at a lower speed.
- Announcing Deno 2 by (October 10th, 2024) ► Some short notes about npm and Jupyter notebook supports.
- Does Deno 2 really uncomplicate JavaScript? by (October 14th, 2024) ► A rather positive quick review of Deno 2.
- Deno 2 • Ryan Dahl • GOTO 2024 by (December 20th, 2024) ► A presentation of Deno 2 by .
-
AJAX
-
Ajax for Java developers: Build dynamic Java applications — Ajax paves the way for better Web applications↑🗑️ by (September 20th, 2005) ► A clear introduction to using
XMLHttpRequest
. - Ajax for Java developers: Java object serialization for Ajax — Five ways to serialize data in Ajax applications🗑️ by (October 4th, 2005) ► The author describes some Java→XML/text serialisation methods with their pros and cons.
- Is AJAX Here to Stay? by (October 5th, 2005) ► As usual with most of these articles, the author is a big believer in AJAX. I would rather think the real future of AJAX depends on the simplicity and the power of the development frameworks.
- Considering Ajax, Part 1: Cut through the hype — Learn when and how to implement this new technology🗑️ by (May 9th, 2006) ► Some very basic facts about AJAX.
- ↪Considering Ajax, Part 2: Change your life with mashups - Pitfalls to avoid — and great opportunities for the future🗑️ by (May 23rd, 2006) ► Some advantages and some disadvantages of using AJAX.
-
Mastering Ajax
- Mastering Ajax, Part 1: Introduction to Ajax — Understanding Ajax, a productive approach to building Web sites, and how it works by (December 6th, 2005) ► An overview of the technologies used in AJAX.
-
↪Mastering Ajax, Part 2: Make asynchronous requests with JavaScript and Ajax — Use XMLHttpRequest for Web requests by (January 17th, 2006) ► A slow but good presentation of
XMLHttpRequest
. -
↪Mastering Ajax, Part 3: Advanced requests and responses in Ajax — Gain a complete understanding of HTTP status codes, ready states, and the XMLHttpRequest object by (February 14th, 2006) ► Some additional details on
XMLHttpRequest
:XMLHttpRequest
ready state values, how to perform a HEAD request, and HTTP status codes. - ↪Mastering Ajax, Part 4: Exploiting DOM for Web response — Convert HTML into an object model to make Web pages responsive and interactive by (March 14th, 2006) ► A very slow introduction to the fact that Browsers encode HTML pages as trees.
- ↪Mastering Ajax, Part 5: Manipulate the DOM — Use JavaScript to update your Web pages on the fly by (April 11th, 2006) ► A presentation of the DOM API.
- ↪Mastering Ajax, Part 6: Build DOM-based Web applications -- Mix the DOM and JavaScript -- those perfect Ajax companions — to change a Web page's user interface without page reloads by (September 12th, 2006) ► A simple example demonstrating DOM.
- ↪Mastering Ajax, Part 7: Using XML in requests and responses — Learn when it's a good idea -- and when it isn't by (October 10th, 2006) ► How the client can generate an XML request for the server and why it is generally not a good idea to do this.
- ↪Mastering Ajax, Part 8: Using XML in requests and responses — Ajax client/server communication can be a tricky business by (November 7th, 2006) ► How the client can handle the server XML answer.
- ↪Mastering Ajax, Part 9: Using the Google Ajax Search API — Take advantage of public APIs in your asynchronous applications by (January 23rd, 2007) ► A small introduction to the Google API.
- ↪Mastering Ajax, Part 10: Using JSON for data transfer — Work natively with JavaScript objects by (March 27th, 2007) ► An introduction to JSON.
- ↪Mastering Ajax, Part 11: JSON on the server side — Responding to and replying with JSON in your server-side scripts and programs by (August 14th, 2007) ► How to send and receive JSON between the Browser to the server.
-
GWT
- Working with the Google Web Toolkit↓🗑️ by (May 31st, 2006) ► The author presents GWT, but he dives directly in the details of a use example without giving an overview. So this article is not clear…
-
Patterns + GWT + Ajax = Usability! — Enhance your Web site with Ajax, GWT, and design patterns🗑️ by (August 21st, 2009) ► Some design patterns:
- prevalidation: asynchronous input validation on the client
- code sharing: use the same code to validate date on the client and on the server
- caching
- prefetching
- thread simulation: either with theTimer
class or with deferred commands. - Google I/O 2010 - Optimizing apps with the GWT Compiler by (May 19th, 2010) ► A description of the tricks done by GWT to improve application performance: type tightening, converting methods to static, finalising, pruning, inlining… both on Java and on JavaScript. How to build faster a GWT application.
- Google I/O 2010 - GWT + HTML5 can do what?! by , , and (May 19th, 2010) ► Using WebGL to process images and sounds, and to play Quake II.
- Scala + GWT by (September 30th, 2010) ► A description of the current status of compiling Scala into JavaScript via a new language, Jribble, and GWT. This is not very convincing.
- Five Ajax best practices — Tips and tools for better Ajax development🗑️ by (November 9th, 2010) ► Minimize number of calls to the server, reduce the size of the transferred data, preload data, handle errors, and use existing libraries. (This article seems much older than the indicated date of writing.)
-
Ajax for Java developers: Build dynamic Java applications — Ajax paves the way for better Web applications↑🗑️ by (September 20th, 2005) ► A clear introduction to using
-
WebGL
- Exporting 3D Scenes from Maya to WebGL Using Clang and LLVM↓ by (November 17th, 2011) ► The title says it all. The technical feat may be worthwhile, but this presentation is boring.
-
Graceful degradation / progressive enhancement
- Inclusive Web Design For the Future with Progressive Enhancement by and (March 11th, 2003) ► Using progressive enhancement to ensure compatibility with older Browsers.
- Hijax by (January 1st, 2006) ► Plan AJAX from the start, but implement it at the end, after the site is working correctly with static pages.
- A guide to writing unobtrusive JavaScript and Ajax — Employ good programming practices when creating your web applications↑🗑️ by (November 2nd, 2010) ► A very good tutorial on writing Ajaxified pages that also work without JavaScript.
- Nicholas Zakas: Progressive Enhancement 2.0 by (March 5th, 2012) ► Despite "2.0" branding, there is nothing new here.
-
Crockford on JavaScript
-
Papers
- Classical Inheritance in JavaScript by ► How to implement several types of inheritance in JavaScript.
- JavaScript: The World's Most Misunderstood Programming Language by (2001) ► Douglas tries to explains why there are so many misconceptions about JavaScript.
- Private Members in JavaScript↑ by (2001) ► How to perform data encapsulation in JavaScript.
-
Videos
- Crockford on JavaScript - Volume 1: The Early Years by (January 25th, 2010) ► A history of computer hardware and languages, from Jacquard loom to Caja.
- ↪Crockford on JavaScript - Chapter 2: And Then There Was JavaScript by (February 5th, 2010) ► A high-level description of JavaScript with its good and bad parts.
- ↪Crockford on JavaScript - Act III: Function the Ultimate by (February 17th, 2010) ► JavaScript functions (definition, invocation, constructors) and some examples.
- ↪Crockford on JavaScript - Episode IV: The Metamorphosis of Ajax by (March 3rd, 2010) ► DOM, events, AJAX libraries, IE6…
- ↪Crockford on JavaScript - Part 5: The End of All Things by (March 31st, 2010) ► Security (XSS, ECMAScript’s Strict mode, object capability security system…), optimisation, Crockford 10th anniversary with JavaScript, and JSLint.
- ↪Crockford on JavaScript - Scene 6: Loopage by (August 27th, 2010) ► Blocking I/O, Grace Hopper, why an event loop is a better design than multithreading, Node.js, how to record the session state…
- ↪Crockford on JavaScript - Level 7: ECMAScript 5: The New Parts by (March 29th, 2011) ► A description of the new features of ECMAScript 5: strict mode, meta object API, getters and setters, JSON…
- ↪Crockford on JavaScript - Section 8: Programming Style & Your Brain by (November 3rd, 2011) ► JSLint: avoiding some bugs by limiting oneself to some safe coding styles.
- Douglas Crockford: Monads and Gonads (YUIConf Evening Keynote) by (November 14th, 2012) ► Using Monads in JavaScript: the Identity Monad, the Ajax Monad, the Maybe Monad, the Promise Monad.
- Douglas Crockford: The Better Parts - JSConfUY 2014🚫 by (March 15th, 2014) ► Miscellaneous ideas: JSLint, ES6, some opinion changes on some JS features, a new numerical type (DEC64), JSON…
- The Better Parts. Douglas Crockford. JS Fest 2018 by (March 30th, 2018) ► The usual talk about the good and bad parts of JavaScript, in particular ES6.
-
Papers
-
Debuggers
-
Firebug
- Debugging and Testing the Web with Firebug by (May 1st, 2009) ► A presentation of the new Firebug 1.4 features and some Q&A about Firebug.
-
Dragonfly
- YUI Theater — Charles McCathieNevile: “Opera Dragonfly”🗑️ by (May 26th, 2009) ► A presentation of Opera debugger. proposes to standardise a "scope API" so debuggers could be cross-Browsers.
-
Firebug
-
Minifiers
- Yahoo YUI Compressor vs. Microsoft AJAX Minifier vs. Google Closure Compiler by (January 18th, 2010) ► A small benchmark focused only on the size reduction.
- Performance Optimizations Made By Microsoft, Google, and Yahoo JavaScript Minimizers by (January 20th, 2010) ► An analysis of the compression tricks performed by these minifiers.
- Make your web applications fly — Improve loading performance and decrease bandwidth of CSS and JavaScript code🗑️ by (October 26th, 2010) ► A very basic and detailed description of using YUI Compressor to compress JavaScript and CSS.