- Adds at least 4 new JavaScript scripts to the site.
- Makes the site load slower.
- Makes the site be larger, that may be an issue for mobile devices.
- Has some past with Cross-Site Scripting (XSS) attacks
- Doesn't do too good job with dynamically generated data.
- Needs more setup
- Needs more custom JavaScript for every case
- A/B testing needs manually create each version of the page, and requires redirect
- For MVT the markup of the section needs to be changed to add the
script
tags for each and every item that is to be tested. - Adds development work
var express = require('express'), | |
underscore = require('underscore')._, | |
httpRequest = require('request'), | |
app = express.createServer(express.logger()); | |
// For favicon requests just redirect them. | |
app.get('/favicon.ico', function (request, response) { | |
// Set the appropriate content type | |
response.writeHead(200, { | |
'Content-Type': 'image/x-icon' |
// http://svn.janoszen.com/repos/jsfw/trunk/httpclient.js | |
function HTTPClient() { | |
this._xhr = this._getXHR(); | |
} | |
HTTPClient.prototype = { | |
_xhr : undefined, | |
_method : "GET", | |
_url : "", |
h1= title | |
p Welcome to #{title} | |
p | |
| To view a user's Twitter widget go to  | |
code /get/{TwitterUserName} | |
| for example | |
a(href="/get/Poetro") /get/Poetro |
$ npm update jade optimist express | |
npm info it worked if it ends with ok | |
npm info using npm@0.3.18 | |
npm info using node@v0.4.3 | |
npm info updates express@2.1.1 jade@0.10.1 optimist@0.1.8 | |
npm info preupdate express@2.1.1 | |
npm info preupdate jade@0.10.1 | |
npm info preupdate optimist@0.1.8 | |
npm info fetch http://registry.npmjs.org/express/-/express-2.1.1.tgz | |
npm info fetch http://registry.npmjs.org/jade/-/jade-0.10.1.tgz |
A Node.js egy 2 éves dinamikusan fejlődő, és hatalmas fejlesztői közösséget megmozgató szerver oldali JavaScript környezet. Segítségével weboldalakat, konzolos segédalkalmazásokat, internetes szolgáltatásak építhetünk egy teljesen új eseményvezérelt és aszinkron I/O-t használó rendszerben, mely kevésbé érzékeny a nagy számú konkurens kérésre mint sok más szerver oldalon használt rendszer. Ezt a kezdeményezést szeretném bemutatni, szemléltetve az előnyöket és hátrányokat valamint a működést pár egyszerű példán keresztül.
A Ryan Dahl által 2009-ben kitalált új platform a Node.js napjaink egyik legfelkapottabb alkalmazás platformja. Ryan célja egy eseményvezérelt, aszonkron I/O környezet létrehozása volt. Mivel a JavaScript alkalmazások és programozók számára ez természetes közeg, ezért esett a választás a nyelvre.
A kezdetek óta a rendszer sokat változott és fejlődött, valamint egyre több operációs rendszeren érhető el natívan. Elsődleges platformot továbbra is a *nix rendszerek képezik, de már Windows a
var http = require('http'), | |
fs = require('fs'), | |
url = require('url'), | |
server = new http.Server(), | |
port = 1337, | |
host = '127.0.0.1', | |
publicFiles = {}, | |
path = require('path'), | |
mimes = { | |
'default': 'text/plain; charset=utf-8', |
Már több mint negyed éve interjúztatok JavaScript fejlesztői állásra, és észrevettem, hogy a mi kérdéssorunkból mire tudják a legkevesebben a választ, illetve mire adnak rendszeresen hibás választ. Ezeket a kérdéseket és válaszokat próbáltam összegyűjteni, hátha mások tanulni fognak belőle.
JavaScriptben prototípusos (prototypal) öröklődés van, ami azt jelenti, hogy egy osztály a prototípusától örökli a tulajdonságait. A prototípusa pedig szintén örökölhet tulajdonságokat a saját prototípusától, így jön létre a prototípus lánc (prototype chain). A prototípus lánc azt jelenti, hogy amikor a objektum egy tulajdonságát kérdezzük le, akkor a JavaScript motor előbb megnézi, hogy az definiálva van-e magán az objektumon, majd annak prototípusán, majd a prototípus prototípusán stb. Ha megtalálja, akkor visszadja, ha nem, akkor undefined
értéket ad vissza vagy ReferenceError
hibát dob.
undefined
JavaScript is an Object Oriented language. It is a prototypical language, which means it handles inheritance by prototypes rather than classes. In JavaScript everything is an object or is automatically converted to one (except for null
and undefined
).
JavaScript has 5 primitive types (number
, boolean
, string
, null
and undefined
) that will automatically be wrapped into an object when methods are called on them, and then transformed back to primitive (except for null
and undefined
which does not have a wrapper objects):
"string".slice(2).replace("r", "k") === "king"; // true
A következő cikksorozattal szeretném folytatni a JavaScript nyelv bemutatását, amit a függvények bemutatásával kezdtem el. A további cikkekben szeretnék jobban elmélyedni a további témákba, mint
- funkcionális programozás,
- eseménykezelés,
- objektumok
- valamint kitérni arra, hogyan változnak meg az ECMAScript (ES) következő változataiban.
Jelen esetben korszerű ES5 kompatibilis JavaScript motort feltételezek, de kitérek arra, hogyan lehet megvalósítani mindezt régebbi böngészőkben is (amennyiben egyáltalán lehetséges).