[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Javascript + SQL
ASerputko
Всем привет!
Интересует вопрос о создание Базы данных в браузере по средствам javascript.
У кого есть литература или ссылки на статьи плз поделитесь.

Знаю что на данный момент БД в браузере поддерживает Сафари и Хром.
Если у кого есть примеры кода, плз выложите для общего обозрения

Очень интересная тема....!!!!



Спустя 3 минуты, 15 секунд (3.11.2010 - 07:15) ASerputko написал(а):
Вот малый пример того, что на самом деле хотелось бы освоить

Свернутый текст

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title></title>
<style>

input {
width: 150px;
margin-right: 10px;
}
</style>

<script>

function
init() {
try {
if (window.openDatabase) {
db = openDatabase("Test", "1.0", "Webkit Storage Example")
if (!db) {
alert("Failed to open the database on disk")
} else {
initDb()
}
}
else {
alert("Database storage not supported");
}

}
catch(err) {
alert("Error occured:"+err.message);
}
}


function initDb() {
db.transaction(function(tx) {
tx.executeSql("CREATE TABLE IF NOT EXISTS test (key TEXT, value TEXT, unique(key))", [], function(){},
function(tx, error) {
alert("Could not create table"+error.message)
})
})
}

function $(id) {
return document.getElementById(id)
}

function errback(tx, error) {
alert("Database error: "+error.message)
}

function put(key, value) {
db.transaction(function(tx) {
tx.executeSql("REPLACE INTO test (key, value) VALUES (?,?)", [key,value], function(){},errback)
})

}

function get(key, callback) {
db.transaction(function(tx) {
tx.executeSql("SELECT value FROM test WHERE key=?", [key],
function(tx,result) {
if (result.rows.length) {
callback.call(null, result.rows.item(0).value)
} else {
callback.call(null, undefined)
}
}
, errback)
})
}

function remove(key) {
db.transaction(function(tx) {
tx.executeSql("DELETE FROM test WHERE key=?", [key], function(){}, errback)
})
}


function listAll(callback) {
db.transaction(function(tx) {
tx.executeSql("SELECT key,value FROM test", [],
function(tx,result) {
var list = []
for(var i=0; i<result.rows.length; i++) {
var item = result.rows.item(i)
list.push(item.key+':'+item.value)
}
callback.call(null, list)

}, errback)
})
}


function removeAll() {
db.transaction(function(tx) {
tx.executeSql("DELETE FROM test", [], function(){}, errback)
})
}




onload = init

</script>
</head>
<body>


Ключ: <input type="text" id="key" value="data">

<p>
<input
type="button" value="Записать ключ" onclick="put($('key').value, $('in').value)"/>
<input
type="text" id="in" value="данные"/>
</p>

<p>

<input
type="button" value="Показать ключ" onclick="get($('key').value, function(res) {$('out').innerHTML=res})"/>
</p>

<p>
<input
type="button" value="Удалить ключ" onclick="remove( $('key').value )"/>
</p>


<p>
<input
type="button" value="Показать все ключи" onclick="listAll(function(res) { $('out').innerHTML = res.join('<br/>')})"/>
</p>

<p>
<input
type="button" value="Удалить все ключи" onclick="removeAll()"/>
</p>



<span
id="out"></span>



</body>
</html>


Спустя 1 час, 39 минут, 17 секунд (3.11.2010 - 08:54) vital написал(а):
Омфг. Не знал такого.. Очень вот любопытно - а нафига это вообще может понадобится???

Спустя 45 минут, 25 секунд (3.11.2010 - 09:40) vagrand написал(а):
Цитата
Омфг. Не знал такого.. Очень вот любопытно - а нафига это вообще может понадобится???


Присоединяюсь к вопросу. Это же абалденное нарушение секюрности.

Спустя 4 часа, 55 минут, 18 секунд (3.11.2010 - 14:35) ASerputko написал(а):
Эту идею развивают америкосы. Задача состоит в том что бы создавать приложения, к примеру обучающий сайт который полноценно работали без соединения к интернету.


Спустя 3 месяца, 16 дней, 6 часов, 59 минут, 38 секунд (19.02.2011 - 21:34) alex12060 написал(а):
Фига се)
Не понимаю, зачем тебе это?
Ведь рывнув ЖС, я смогу нахрен все удалить с твого сайта)

А так, это все серьёзно)

Спустя 1 час, 45 минут, 5 секунд (19.02.2011 - 23:20) ApuktaChehov написал(а):
ASerputko - а вам зачем это? Может дело сделать надо? Или просто так, для общего развития?

Спустя 31 минута, 7 секунд (19.02.2011 - 23:51) Slays написал(а):
ничего необычного в коде не увидел, создается глобальный объект, который хранит данные. Изучай более глубоко родное объектное поведение JS, сможешь и поинтересней штуки писать.
Вы привыкли к phpMyAdmin, но это всего-лишь интерфейс, БД всегда можно представить как обычный массив. Ну а работать с массивами, обыденная способность любого языка, даже волшебства не надо.

Спустя 26 минут, 21 секунда (20.02.2011 - 00:17) Arni написал(а):
Штука на самом деле интересная, потому как на стороне клиента все больше и больше разворачиваются алгоритмы. А этот пример просто демонстрирует то что начинаются попытки организовать хранение информации, поскольку обычных имен переменных уже становится недостаточно. smile.gif

Спустя 9 часов, 31 минута, 26 секунд (20.02.2011 - 09:48) Slays написал(а):
Попытки начинались лет 10-20 назад, а сейчас это давно уже применяется. И этот псевдоSQL всего-лишь один из примеров. Просто многие в JS дальше выпадающих менюшек и не заглядывают =)
user posted image

Спустя 2 месяца, 4 дня, 4 часа, 17 минут, 37 секунд (24.04.2011 - 13:06) Гость_Michael написал(а):
Мне тоже эта тема кажется интересной: работать с правильной БД через браузер!
Да хотя бы в учебных целях, и для организации "мобильной ИС"...

Спустя 48 минут, 28 секунд (24.04.2011 - 13:55) Эли4ка написал(а):
то есть вы хотите чтобы данные обрабатывались вашим браузером?а не веб-сервером?это очень опасно тк это будет все проходить через куки(скорее всего) а куки могут выпихнуть и тогда какой смысл не говорить всю базу всем и вся?


_____________
0_о
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.