Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #41 (permalink)  
Старый 16.08.2012, 01:19
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

mitiya,
Есть еще File Api для мобилок http://habrahabr.ru/post/139492/
http://habrahabr.ru/company/microsof...6158/#habracut

Последний раз редактировалось Deff, 16.08.2012 в 01:21.
Ответить с цитированием
  #42 (permalink)  
Старый 16.08.2012, 02:08
Кандидат Javascript-наук
Отправить личное сообщение для mitiya Посмотреть профиль Найти все сообщения от mitiya
 
Регистрация: 13.01.2011
Сообщений: 114

Сообщение от Deff Посмотреть сообщение
mitiya,
Есть еще File Api для мобилок http://habrahabr.ru/post/139492/
http://habrahabr.ru/company/microsof...6158/#habracut
что-то я не понимаю как это мне может помочь ?
Ответить с цитированием
  #43 (permalink)  
Старый 18.08.2012, 00:40
Кандидат Javascript-наук
Отправить личное сообщение для mitiya Посмотреть профиль Найти все сообщения от mitiya
 
Регистрация: 13.01.2011
Сообщений: 114

вот что мне удалось сделать

var dataBase = "TextsDB" ;

			$.indexedDB(dataBase, {
				schema: {
					 "1": function(versionTransaction){
					 var texts = versionTransaction.createObjectStore("texts", {
					 "keyPath": "hash"
					 });
					 texts.createIndex("hash");
					 }
				}
			}).then(console.info, console.error);

addData(dataBase, "texts", { hash: '846847', text: 'jhklj'})

getData(dataBase, "texts", "846847");


function addData(db, oS, obj) {
	var transaction = $.indexedDB(db).objectStore(oS);
	transaction.add(obj);
}

function getData(db, oS, hash) {
	var out
	$.indexedDB(db).objectStore(oS).get(hash).done(function(elem){
				out = elem;
				alert('out=' + out.text);
			});
	return out
}


собственно с грехом пополам работает создание базы, добавление туда записи. и даже получение работает, но почему-то алерт показывает то что нужно только внутри функции а ретурнить то что мне надо не хочет,
Ответить с цитированием
  #44 (permalink)  
Старый 18.08.2012, 07:34
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от mitiya
ретурнить то что мне надо не хочет
что то все хотят в асинхронных функциях return
вот здесь на сайте мозиллы
https://developer.mozilla.org/en-US/docs/IndexedDB
написано что в настоящее время работает только асинхронная версия API indexedDB
а синхронная пока не работает ни в одном браузере
Note: The synchronous APIs of IndexedDB have not yet been implemented in any browser.
В асинхронных процессах мы не можем выполнить return а используем callback
напишите
function getData(db, oS, hash,callback)
......get(hash).done(callback)...

Последний раз редактировалось vadim5june, 18.08.2012 в 07:38.
Ответить с цитированием
  #45 (permalink)  
Старый 18.08.2012, 14:06
Кандидат Javascript-наук
Отправить личное сообщение для mitiya Посмотреть профиль Найти все сообщения от mitiya
 
Регистрация: 13.01.2011
Сообщений: 114

я если честно в асинхронном программировании ничего не понимаю.
можно поподробней ?
Ответить с цитированием
  #46 (permalink)  
Старый 18.08.2012, 14:20
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от mitiya Посмотреть сообщение
я если честно в асинхронном программировании ничего не понимаю.
можно поподробней ?
Когда ты хотел вернуть переменную с помощью return
что хотел дальше сделать?
Использовать в какой то функции?
Напиши ее еcли она есть а мы ее запустим как callback
Ответить с цитированием
  #47 (permalink)  
Старый 18.08.2012, 14:52
Кандидат Javascript-наук
Отправить личное сообщение для mitiya Посмотреть профиль Найти все сообщения от mitiya
 
Регистрация: 13.01.2011
Сообщений: 114

мне нужно тест запихнуть в свойство объекта что бы потом в разных местах с ним работать. пытаюсь сделать так :

obj = {text: 'tt'} ;

getData(dataBase, "texts", "846847", function(elem) { 
			alert('elem.text=' + elem.text);
			obj.text = elem.text;
		});
alert('obj.text=' + obj.text);

function getData(db, oS, hash, callback) {
	$.indexedDB(db).objectStore(oS).get(hash).done(callback);
}


в результате alert('elem.text=' + elem.text); // нужный текст выдает

а alert('obj.text=' + obj.text); // выдает tt , то-есть старое значение.

я так понимаю, что дело в том что ответ на функцию getData приходит позже чем вызов alert('obj.text=' + obj.text);
но мне то все равно нажо получить этот текст в obj.text
Ответить с цитированием
  #48 (permalink)  
Старый 18.08.2012, 15:18
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от mitiya Посмотреть сообщение
но мне то все равно нажо получить этот текст в obj.text
вот так вот делайте
getData(dataBase, "texts", "846847", function(elem) {
           ff(elem)
        });
function ff(el){
var obj={text:el.text} ;
//здесь код в котором используется obj
}
Ответить с цитированием
  #49 (permalink)  
Старый 18.08.2012, 15:25
Кандидат Javascript-наук
Отправить личное сообщение для mitiya Посмотреть профиль Найти все сообщения от mitiya
 
Регистрация: 13.01.2011
Сообщений: 114

но все-равно все будет по сути внутри коллбэка ?
а нельзя как-то при вызове getData заставить скрипт ждать прихода результата ?

мне грубо говоря нужно закэшировать этот текст, потому как с ним ного каких операций дальше будет производиться, и каждый раз запрашивать его в этом асинхронном режиме из базы совсем не хочется.

Последний раз редактировалось mitiya, 18.08.2012 в 15:27.
Ответить с цитированием
  #50 (permalink)  
Старый 18.08.2012, 15:29
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от mitiya Посмотреть сообщение
но все-равно все будет по сути внутри коллбэка ?
а нельзя как-то при вызове getData заставить скрипт ждать прихода результата ?
нет такой возможности приостановить скрипт-
то что будет внутри callback это нормально-никто не запрещает оттуда вызывать функции определенные на глобальном уровне
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 21:24
Баги Opera пишем сюда devote Оффтопик 101 08.08.2013 05:56
Как (эффективно) изучать JavaScript? JSTalker Общие вопросы Javascript 33 23.12.2010 03:13
Выдает ошибку. Что делать? octavian Общие вопросы Javascript 1 20.02.2010 12:13
Браузер доказывает что не видит функцию SleepWalker Общие вопросы Javascript 7 17.06.2009 23:14