рд╣рдо рд╕рднреА рдЕрдкрдирд╛ рд╕рдордп рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдореИрдВ рдЗрд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ (рдареАрдХ рд╣реИ, рд╢рд╛рдпрдж рдЖрдкрдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ)ред
рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ - рд╡реЗрдм рдПрд╕рдХреНрдпреВрдПрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдЧреВрдЧрд▓ рдЧрд┐рдпрд░реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛ред
рдбреНрдпреВрдЯреА рдкрд░, рдореИрдВ рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рд╡реЗрдм рд╡рд░реНрдХрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реВрдВред
рддреЛ рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП:
1. SQL рдХреНрд╡реЗрд░реА рдЬреЛ рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХрд╛ рдЪрдпрди рдХрд░рддреА рд╣реИ
2. рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЕрдЬрд╛рдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓рд┐рдЦрдирд╛
3. рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕, рдЧреВрдЧрд▓ рдХреНрд░реЛрдо, рд╕рдлрд╛рд░реА, IE рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди
4. рд╕рдорд░реНрдерди рдЬреАрдд, рд▓рд┐рдирдХреНрд╕, MacOS, iPad
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реЗ рд╕реЗ, рд╕рдорд╕реНрдпрд╛рдПрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВред
Google рдЧрд┐рдпрд░
Google рдЧрд┐рдпрд░реНрд╕ (рдПрд╕рдХреНрдпреВрдПрд▓ рдФрд░ рд╡реЗрдм рд╡рд░реНрдХрд░реНрд╕) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдореБрдЦреНрдп рдорд╛рдкрджрдВрдб:
┬▒ рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдорд░реНрдерди,
┬▒ рд╡реЗрдм рд╡рд░реНрдХрд░реНрд╕ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ
Er рд╡реЗрдм рд╡рд░реНрдХрд░ рд╕реЗ рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдорд░реНрдерди
рдПрдХреНрд╕ - рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛
(рдореИрдВ рддреБрд░рдВрдд рд╣реА рдХрд╣реВрдВрдЧрд╛ - рд╕рднреА рд╕рдорд░реНрдерд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ Google рдЧрд┐рдпрд░ рд╕рдм рдХреБрдЫ рдпрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рддреАрди рдХрдиреЗрдХреНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ)
| рдХреНрд░реЛрдо | рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ | рд╕рдлрд╛рд░реА | рдЖрдИрдИ |
рдЬреАрддрдирд╛ | +++ | +++ | --- | +++ |
MacOS | --- | +++ | --- | рдПрдХреНрд╕ |
рдЖрдИрдкреИрдб | рдПрдХреНрд╕ | рдПрдХреНрд╕ | --- | рдПрдХреНрд╕ |
рд▓рд┐рдирдХреНрд╕ | --- | +++ | --- | рдПрдХреНрд╕ |
рд╕рдлрд╛рд░реА (рдореИрдХрдУрдПрд╕) рдХреЗ рд▓рд┐рдП рднреА Google рдЧрд┐рдпрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдХрд╕реНрдЯрдо рдкреНрд▓рдЧрдЗрди рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╕рдлрд╛рд░реА 32-рдмрд┐рдЯ рдореЛрдб (рд╕реНрдиреЛ рд▓реЗрдкрд░реНрдб) рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдкрд╛рд░рджрд░реНрд╢реА рдФрд░ рд╕рд░рд▓ рд╣реИ, рд╕реВрдЪрдирд╛ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдПрдХ рдмрдбрд╝реА рд░рд╛рд╢рд┐ рд╣реИред
рд╣рдо gears_init.js рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред
Google рдЧрд┐рдпрд░реНрд╕ Sql рдХреЗрд╕ рд╕реНрдЯрдбреАрдЬvar connect = google.gears.factory.create('beta.database');
connect.open(dbName);
var result = connect.execute(query, fields);
while (result.isValidRow()) {
var id = result.fieldByName('id');
result.next();
}
connect.close();
Google рдЧрд┐рдпрд░реНрд╕ рд╡рд░реНрдХрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдгvar workerPool = google.gears.factory.create('beta.workerpool');
var childWorkerId = workerPool.createWorkerFromUrl('worker.js');
workerPool.onmessage = function(a, b, message) {
switch (message.body) {
case 'EVENT_1':
break;
case 'EVENT_2':
break;
default:
break;
}
};
workerPool.sendMessage({event: 'START'}, childWorkerId);
worker.js:
var worker = google.gears.workerPool
worker.onmessage = function(a, b, message) {
//event message.body.event
worker.sendMessage('EVENT_1', message.sender);
}
рдПрдЪрдЯреАрдПрдордПрд▓ 5 рд╡реЗрдм рдПрд╕рдХреНрдпреВрдПрд▓ рдбреЗрдЯрд╛рдмреЗрд╕
HTML5 рд╡реЗрдм Sql рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдорд░реНрдерди рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдореБрдЦреНрдп рдорд╛рдкрджрдВрдб:
┬▒ рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдорд░реНрдерди,
┬▒ рд╡реЗрдм рд╡рд░реНрдХрд░реНрд╕ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ
Er рд╡реЗрдм рд╡рд░реНрдХрд░ рд╕реЗ рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдорд░реНрдерди
рдПрдХреНрд╕ - рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛
| рдХреНрд░реЛрдо | рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ | рд╕рдлрд╛рд░реА | рдЖрдИрдИ |
рдЬреАрддрдирд╛ | +++ | - - - | ++ - | --- |
MacOS | +++ | - - - | ++ - | рдПрдХреНрд╕ |
рдЖрдИрдкреИрдб | рдПрдХреНрд╕ | рдПрдХреНрд╕ | + - | рдПрдХреНрд╕ |
рд▓рд┐рдирдХреНрд╕ | +++ | - - - | рдПрдХреНрд╕ | рдПрдХреНрд╕ |
рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдЕрдЪрд╛рдирдХ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИ - рд╡реЗрдм рдПрд╕рдХреНрдпреВрдПрд▓ рдбрд╛рдЯрд╛рдмреЗрд╕ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЪрд▓рддрд╛ рд╣реИред рдпрд╛рдиреА рдХреНрд╡реЗрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк 100% рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм sql рдЕрдиреБрд░реЛрдз рдХреЗ рдмрд╛рдж рдЕрдЧрд▓рд╛ рд╡рд┐рд╡рд░рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ sql рдЕрдиреБрд░реЛрдз рдЕрднреА рддрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХрдИ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ:
1) рдиреЗрд╕реНрдЯреЗрдб рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░реЗрдВред рдпрд╛рдиреА рд╣рдо sql рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж рд╣рдо рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реЛрддреА рд╣реИред рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред
2) рдПрдХ рдИрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдПрдБред рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдирд╛ рдлреЗрдВрдХреЗрдВ, рдЗрд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрдХрдбрд╝реЗрдВ рдФрд░ рдЬрд╛рд░реА рд░рдЦреЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред
рд╡реЗрдм рд╡рд░реНрдХрд░ рдХреЗрд╕ рд╕реНрдЯрдбреАрдЬvar worker = new Worker("worker.js");
worker.onmessage = function (evt) {
switch (evt.data) {
case 'EVENT_1':
break;
default:
break;
}
};
worker.onerror = function (evt) {
alert('error: ' + evt.data);
};
worker.postMessage('START');
worker.js:
onmessage = function (event) {
switch (event.data) {
case 'START':
break;
default:
break;
}
postMessage('EVENT_1');
};
рд╡реЗрдм рд╡рд░реНрдХрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдмрд╛рд╣рд░ рд╡реЗрдм рд╡рд░реНрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдгvar connect = window.openDatabase(dbName, "1.0", "", 1024*1024*5);
connect.transaction(function(db) {
//
db.executeSql("SELECT id FROM test", fields,
function(t, results) {
for (i = 0; i < results.rows.length; i++){
//results.rows.item(i)['id'];
}
},
function(t, error) {
alert(error.message);
}
);
});
рд╡реЗрдм рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдореЗрдВ рд╡реЗрдм рдПрд╕рдХреНрдпреВрдПрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдгvar db = openDatabaseSync('db', "1.0", "", 1024*1024*5);
db.transaction(function(db) {
//
var result = db.executeSql("SELECT id FROM test");
for (var i = 0; i < result.rows.length; i++) {
//result.rows.item(i)['id'];
}
});
Chrome рдореЗрдВ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рднреА рд╣реИ - рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП 5 mb рдХреА рдПрдХ рдХрдард┐рди рд╕реАрдорд╛, рдЬрд┐рд╕реЗ рдлрд┐рд▓рд╣рд╛рд▓ рд╕рд╛рдорд╛рдиреНрдп j рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХреНрд░реЛрдо рдХреЛ 5 рдПрдордмреА рдХреА рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЦрд┐рдбрд╝рдХреА рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕реЗ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдХрд╛ рд╕рд╡рд╛рд▓ рд╣реИред рд▓реЗрдХрд┐рди ... рдЕрдлрд╕реЛрд╕ред
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдХреБрдЫ рдХреАрдорддреА рд╕рдордп рдмрдЪрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред