var welcome_user = new Template('#{welcome} #{name}!!');
welcome_user.parse({ welcome: "Hello", name: "John" });
//returns "Hello John!!"
welcome_user.parse({ welcome: "Hola", name: "Peter" });
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// `Object.make(..)` is a helper/wrapper for `Object.create(..)`. Both create a new | |
// object, and optionally link that new object's `[[Prototype]]` chain to another object. | |
// | |
// But `Object.make(..)` makes sure the new object always has a `__proto__` property | |
// (even a null one) and delegation to a `isPrototypeOf(..)` method, both of which are | |
// missing from the bare object (aka "Dictionary") created by `Object.create(null)`. | |
// | |
// `isPrototypeOf()` is put on a extra object that your created object can delegate to, | |
// if any only if you create an empty object (by not passing a `linkTo`) that otherwise | |
// wouldn't have access to `isPrototypeOf()`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function Foo(who) { | |
this.me = who; | |
} | |
Foo.prototype.identify = function() { | |
return "I am " + this.me; | |
}; | |
function Bar(who) { | |
Foo.call(this,"Bar:" + who); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<title></title> | |
<meta charset="utf-8" /> | |
<script src="templating.js" type="text/javascript" charset="utf-8"></script> | |
</head> | |
<body> | |
<template id=t> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!doctype html> | |
<html lang="en"> | |
<head> | |
<meta charset="utf-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>FOFT, or FOUT with Two Stage Render</title> | |
<style> | |
@font-face { | |
font-family: Lato; | |
src: url('/web/css/fonts/lato/lato-regular-webfont.woff2') format('woff2'), |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!doctype html> | |
<html lang="en"> | |
<head> | |
<meta charset="utf-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Critical FOFT</title> | |
<style> | |
@font-face { | |
font-family: LatoSubset; | |
src: url('/web/css/fonts/lato/lato-zachleat-optimized.woff2') format('woff2'), |
- Location - The location of the application. Usually just a URL, but the location can contain multiple pieces of information that can be used by an app
- pathname - The "file/directory" portion of the URL, like
invoices/123
- search - The stuff after
?
in a URL like/assignments?showGrades=1
. - query - A parsed version of search, usually an object but not a standard browser feature.
- hash - The
#
portion of the URL. This is not available to servers inrequest.url
so its client only. By default it means which part of the page the user should be scrolled to, but developers use it for various things. - state - Object associated with a location. Think of it like a hidden URL query. It's state you want to keep with a specific location, but you don't want it to be visible in the URL.
- pathname - The "file/directory" portion of the URL, like