No Image

Что такое сохранить локально

СОДЕРЖАНИЕ
2 просмотров
22 января 2020

Толковый словарь Даля . В.И. Даль. 1863-1866 .

Смотреть что такое "ЛОКАЛЬНЫЙ" в других словарях:

ЛОКАЛЬНЫЙ — (лат. localis, от locus место). Местный. Словарь иностранных слов, вошедших в состав русского языка. Чудинов А.Н., 1910. ЛОКАЛЬНЫЙ [лат. localis Словарь иностранных слов русского языка

локальный — ая, ое. local, e adj. <лат. localis местный. 1. Ограниченный определенным местом, не выходящий за известные пределы. БАС 1. Как победоносныя войска .. из заграничной армии приблизились а пределам Государства, то Коллегия учиня к расположению… … Исторический словарь галлицизмов русского языка

локальный — местный, ограниченный, местного характера, местного значения, топический Словарь русских синонимов. локальный см. местный 2 Словарь синонимов русского языка. Практический справочник. М.: Русский язык. З. Е. Александрова … Словарь синонимов

ЛОКАЛЬНЫЙ — ЛОКАЛЬНЫЙ, локальная, локальное (от лат. localis) (книжн. офиц.). Местный, свойственный только определенному месту, не выходящий за определенные пределы. Толковый словарь Ушакова. Д.Н. Ушаков. 1935 1940 … Толковый словарь Ушакова

ЛОКАЛЬНЫЙ — ЛОКАЛЬНЫЙ, ая, ое; лен, льна (книжн.). Местный, не выходящий за определённые пределы. Локальная война. | сущ. локальность, и, жен. Толковый словарь Ожегова. С.И. Ожегов, Н.Ю. Шведова. 1949 1992 … Толковый словарь Ожегова

Локальный — (местный) термин, используемый для обозначения инфекц. процесса, иммунного состояния, ограниченного каким либо органом или участком тела хозяина, а также местного (несистемного) применения антимикробных или др. препаратов. (Источник: «Словарь… … Словарь микробиологии

локальный — местный, свойственный данному месту; не выходящий за определенные пределы, ограниченный. Словарь практического психолога. М.: АСТ, Харвест. С. Ю. Головин. 1998 … Большая психологическая энциклопедия

локальный — местный — [[http://www.rfcmd.ru/glossword/1.8/index.php?a=index d=23]] Тематики защита информации Синонимы местный EN local … Справочник технического переводчика

локальный — Относящийся к данной конкретной территории. Syn.: местный … Словарь по географии

локальный — 3.12 локальный: Применяется по отношению к любому прибору, установленному на или вблизи оборудования или пульта управления. Источник: ГОСТ Р 53737 2009: Нефтяная и газовая промышленность. Поршневые компрессоры. Общие технические требования … Словарь-справочник терминов нормативно-технической документации

В современных смартфонах под управлением Android в стандартных прошивках зачастую присутствуют преднастроенные локальные группы контактов, которые стандартными средствами невозможно ни удалить, ни переименовать. Обычно они называются “Colleagues“, “Family” и “Friends” и нередко в адресной книге отображаются над синхронизируемыми группами Google-аккаунта или других сетевых сервисов. И они продолжают отображаться даже в том случае, когда они пусты и в них нет ни одного контакта. Не приходится говорить о том, насколько это глупо и неудобно.

Для взломанных телефонов с root-доступом эта проблема подлежит исправлению.

  • Права суперпользователя на телефоне и утилита SuperSu или ее аналоги;
  • Редактор баз данных – например, SQLite Editor;
  • Аккуратность.

ВНИМАНИЕ! Мы не несем ответственности за исправность вашего оборудования после проведения описанных в статье действий. Вы производите все операции на свой страх и риск. Неумелое редактирование системных баз данных смартфона может привести к неработоспособности системы и потребует ее перепрошивки.

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

  1. Открываем SQLite Editor и соглашаемся предоставить ей права суперпользователя. Если запроса от SuperSu не последовало – попробуйте использовать Root Explorer для выбора файла для редактирования. Иначе вы не сможете сохранить внесенные изменения.
  2. Переходим на закладку Files и переходим в каталог /data/data/com.google.android.providers.contacts/databases. В нем интерес представляет файл contacts.db (в зависимости от прошивки – contacts2.db). Открываем его.
  3. Спустя некоторое время программа отобразит список таблиц, хранимых в выбранной базе данных контактов. Отыскиваем строку groups и нажимаем на нее.
  4. Открывается содержимое таблицы groups. В этих строках хранится информация обо всех существующих группах контактов. Чаще всего нередактируемые локальные контакты занимают первые три строки и имеют account_id, равный единице.
  5. Редактор SQLite допускает удаление строк, но для минимизации риска порчи данных убрать неугодные группы контактов можно просто путем выставления единицы в поле deleted. Для этого нажимаем на интересующую нас строку и кликаем на значок карандаша сверху экрана.
  6. Открывается меню редактирования выбранной строки. Меняем значение поля deleted с нуля на единицу и нажимаем кнопку Save.
  7. Повторяем это действие для остальных предзаданных групп контактов и закрываем SQLite Editor.

Теперь перезапускаем приложение адресной книги и убеждаемся, что локальные группы в ней более не отображаются вообще!

PS: Вместо выставления единицы в поле deleted можно также поставить ноль в поле group_is_read_only – после этого переименовать или удалить локальные группы станет возможным через обычный встроенный редактор групп в адресной книге.

Серия контента:

Этот контент является частью # из серии # статей: Использование возможностей HTML5 для сохранения данных и оффлайновой работы

Этот контент является частью серии: Использование возможностей HTML5 для сохранения данных и оффлайновой работы

Следите за выходом новых статей этой серии.

Читайте также:  Создать новый профиль firefox

Согласно существующим планам, технология HTML5 (HTML version 5) получит статус Рекомендации организации World Wide Web Consortium (W3C) не ранее 2014 года. Хотя технология HTML5 еще не является официальным стандартом, поставщики веб-браузеров уже добавляют и продвигают HTML5-функции. Технология HTML5 расширяет веб-возможности для сайтов в Интернете и для бизнес-приложений. Многие веб-сайты, такие как Amazon Kindle Cloud Reader, уже используют технологию HTML5. Следующие две ключевые функции HTML5 существенно изменят бизнес-приложения: поддержка оффлайновых приложений и локальное персистентное хранилище. Поскольку технология HTML5 не является официальным стандартом, ее поддержка различными браузерами в лучшем случае не единообразна.

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

Учебное приложение

Учебное приложение Contact Manager обеспечивает управление контактной информацией (имена, адреса, номера телефонов). Оно поддерживает онлайновый режим, оффлайновый режим и простую функцию синхронизации данных, которая позволяет синхронизировать локальные изменения данных с сервером после переключения на онлайновый режим. При нахождении приложения в оффлайновом режиме данные размещаются в локальном персистентном хранилище. Описываемое приложение поддерживает четыре базовые функции персистентного хранения — создание/чтение/обновление/удаление (create/read/update/delete, CRUD) — и в онлайновом, и в оффлайновом режимах.

Архитектура

На рисунке 1 показана архитектурная схема приложения Contact Manager. Архитектура сервера состоит из двух сервлетов, которые соответствуют бизнес-сервисам и провайдерам данных. Пользовательский интерфейс состоит из одного HTML-файла, четырех JavaScript-модулей и внешней ссылки на новейшую версию библиотеки jQuery.

Рисунок 1. Архитектурный план приложения

Модель данных

Модель данных состоит из двух объектов данных, contact и state (см. рис. 2). Таблица contact содержит фактические контактные сведения; таблица state содержит значения словаря для списка выбора состояния.

Рисунок 2. Модель данных

Интерфейс сервера

Интерфейс сервера состоит из двух сервлетов: ContactServlet и DictionaryServlet . Эти сервлеты описаны в таблице 1 (реализация этих сервлетов, а также соответствующих бизнес-сервисов и провайдеров данных, выходит за рамки этой статьи).

Таблица 1. Описание сервлетов
Имя сервлета Операция Параметры Описание
DictionaryServlet code> getstates Отсутствуют Возвращает массив состояний в формате JSON (JavaScript Object Notation).
ContactServlet getallcontacts Отсутствуют Возвращает массив записей контактов в формате JSON.
ContactServlet delete contactId — Идентификатор (ID) контакта, подлежащего удалению. Удаляет указанную запись контакта; возвращает JSON-объект с логическим флагом, который служит индикатором успешности операции.
" <"result": true/false">
ContactServlet save
  • contactId — Идентификатор (ID) контакта, подлежащего сохранению (если значение больше нуля, то имеет место операция обновления).
  • firstName — Значение поля name.
  • lastName — Значение поля last name.
  • street1 — Значение поля street 1.
  • street2 — Значение поля street 2.
  • city — Значение поля city.
  • state — Значение поля state.
  • zipCode — Значение поля zipCode.
Возвращает JSON-объект с логическим флагом, который служит индикатором успешности операции, и новый или обновленный идентификатор контакта.
" <"contactId": , "result": ">

Вызов интерфейса сервера

Код в листинге 1 показывает, как осуществить асинхронное обращение к сервлету contact с целью извлечения контактных сведений, хранящихся в онлайновой базе данных. Этот код использует jQuery-функцию getJSON для вызова сервлета contact.

Листинг 1. Извлечение контактных данных из сервера

Код в листинге 2 показывает, как сохранить новый или обновленный контакт на сервере. Код использует jQuery-функцию ajax . Код отправляет данные в сервлет contact с помощью HTTP-запроса POST .

Листинг 2. Сохранение контактных данных на сервере

Последняя функция состоит в удалении записи из онлайновой базы данных. В листинге 3 показано, как удалить запись с сервера. Чтобы вызвать сервлет contact, код использует jQuery-функцию getJSON .

Листинг 3. Удаление контактных сведений на сервере

Создание локального провайдера данных

Локальный провайдер данных сохраняет весь список выбора и все контактные сведения на локальной системе. Спецификация HTML5 содержит несколько опций для реализации персистентного хранилища. Выбор используемой технологии зависит от требований, предъявляемых к хранилищу данных и к поддержке браузеров. В следующих разделах рассматриваются три технологии персистентного хранения, а также реализация локального провайдера данных с использованием технологии персистентного хранения, которую поддерживают все ведущие веб-браузеры.

Спецификация HTML5 включает следующие три технологии персистентного хранения.

  • localStorage — Технология localStorage обеспечивает простое хранение данных с помощью плоского хранилища типа ключ-значение. Все ведущие веб-браузеры, включая Apple® Safari®, Google Chrome™, Microsoft® Windows® Internet Explorer®, Mozilla® Firefox® и Opera™, поддерживают технологию localStorage. В спецификации HTML5 технология localStorage является синхронной; на данный момент это единственный механизм для хранения базы данных, который поддерживается на нескольких платформах и в нескольких браузерах.
  • WebSQL — Технология WebSQL первоначально была ориентирована на использование веб-браузера для работы с базой данных на основе Transact-SQL. Эта технология не требует больших усилий на обучение, поскольку она имеет большое сходство с такими реляционными СУБД, как IBM® DB2®, Microsoft SQL Server®, Oracle® MySQL® Server и Oracle Database. Технологию WebSQL поддерживают несколько браузеров, включая Safari, Chrome и Opera. Она не поддерживается браузерами Firefox и Internet Explorer. По всей видимости, эта технология постепенно выйдет из употребления, поскольку предложенная ранее спецификация WebSQL больше не развивается.
  • Indexed database (Indexed DB) — Технология IndexedDB предоставляет индексированное иерархическое хранилище типа ключ-значение, подобное многим коммерческим предложениям для облачного хранения данных. Технология WebSQL была отвергнута в пользу технологии IndexedDB и в настоящее время технология IndexedDB уже поддерживается браузерами Firefox и Chrome, а в будущем будет поддерживаться браузером Internet Explorer 10. API-интерфейс для IndexedDB является асинхронным и поддерживает индексацию, запросы и транзакции.
Читайте также:  Частота работы процессора смартфона какая лучше

Включенное в эту статью учебное приложение использует технологии JSON и localStorage для персистентного хранения преимущественно по причине их широкой поддержки браузерами.

Локальный провайдер данных

Подход localStorage сохраняет контактные и словарные данные посредством их сериализации в виде строки в формате JSON и сохранения этой строки в хранилище localStorage. После извлечения данных они десериализуются в виде массива JSON-объектов и обрабатываются соответствующим образом.

Локальное сохранение данных

В листинге 4 показано, как сохранить контактные сведения в хранилище localStorage. JavaScript-функция JSON.stringify используется для сериализации JSON-данных, которые сервер возвращает в строке, после чего они могут быть сохранены в хранилище localStorage.

Листинг 4. Сохранение данных в localStorage

Локальное извлечение данных

В листинге 5 показано, как извлечь данные из localStorage. Первый шаг состоит в получении JSON-строки из localStorage. Затем эта строка преобразуется в JSON-объекты с помощью JavaScript-функции eval , которая осуществляет десериализацию строки в массив JSON-объектов. Данные отображаются с помощью специальной JavaScript-функции displayContactData .

Листинг 5. Чтение данных из localStorage

Локальное удаление записи

В листинге 6 показано, как удалить запись из localStorage.

Листинг 6. Удаление записи из localStorage

Представленный код выполняет следующие действия.

  • Читает базу данных из локального хранилища и осуществляет ее десериализацию.
  • Выполняет итеративное прохождение по записям, пока не находит contactId .
  • Устанавливает флаг isDeleted в состояние true .
  • Учитывает флаг isDeleted в функции синхронизации данных (обратитесь к разделу под названием Синхронизация данных).
  • Сохраняет данные в localStorage и обновляет структуру данных.

Локальное обновление и создание записей

В листинге 7 показано, как обновить существующую запись или создать новую запись в localStorage.

Листинг 7. Обновление записи в localStorage

Показанный в листинге 7 программный код выполняет следующие действия.

  • Читает базу данных из localStorage и осуществляет ее десериализацию.
  • Если идентификатор contactId записи, подлежащей сохранению, не равен нулю (т.е. произошло обновление), код выполняет итеративное прохождение по записям, пока не найдет запись contactId . После этого код производит ее надлежащее обновление.
  • В качестве альтернативного варианта, если запись является новой (идентификатор contactId не равен нулю), код находит следующий неиспользованный отрицательный идентификатор contactId .
  • Присваивает его новой записи.
  • Добавляет новую запись в базу данных.

Затем данные сериализуются в виде JSON-строки и сохраняются в localStorage . В процессе синхронизации с сервером идентификатору contactId присваивается допустимое значение (больше нуля). Отрицательные значения имеют временные идентификаторы, используемые для идентификации новых записей.

Необходимо учитывать следующие особенности технологии localStorage.

  • Размеры хранилища ограничены величиной 5 МБ (если требуется хранилище данных большего объема, следует использовать технологию IndexedDB).
  • Данная технология поддерживается всеми ведущими веб-браузерами.
  • Технология работает только со строковыми значениями.

Следующий шаг состоит в построении пользовательского интерфейса с помощью технологии HTML5.

Построение пользовательского интерфейса с помощью технологии HTML5

Учебное приложение Contact Manager имеет простой пользовательский интерфейс с единственной страницей. Этот интерфейс поддерживает операции редактирования и удаления для каждой записи, а также предоставляет возможность создания новых записей. Технологии CSS (Cascading style sheets) и dynamic HTML (посредством jQuery) используются для того, чтобы по мере необходимости скрывать и показывать субформы для создания/редактирования.

С целью предоставления пользователю единообразных возможностей одна и та же страница используется и в онлайновом, и в оффлайновом режимах; единственная разница состоит в том, вызов какого провайдера данных осуществляется при выполнении операции. Учебное приложение показано на рис. 3.

Рисунок 3. Приложение Contact Manager

JavaScript-модули

Приложение состоит из четырех специальных JavaScript-модулей:

  • core.js – поддерживает обычные функции JavaScript и используется другими модулями.
  • formEvents.js – предоставляет обработчиков событий для кнопок и форм. Он направляет операции базы данных к надлежащему провайдеру данных в соответствии с онлайновым или оффлайновым режимом.
  • onlinedb.js – поддерживает функции для взаимодействия с сервером при нахождении в онлайновом режиме.
  • offlinedb.js поддерживает функции для локального хранения данных.

Кроме того, все модули используют последнюю версию библиотеки jQuery для прослеживания данных, для асинхронных веб-запросов и для поддержки dynamic HTML. Клиент взаимодействует с сервером с помощью JSON.

Читайте также:  Телефон sony ericsson s500i

Манифест оффлайнового приложения

Оффлайновые возможности HTML5 обеспечивают кэширование статических файлов и ресурсов. Файл манифеста оффлайнового приложения (.appcache) – это важнейший файл для поддержки оффлайнового приложения для веб-приложения. Файл манифеста содержит следующую информацию.

  • Ресурсы и страницы, доступные в оффлайновом режиме.
  • Ресурсы, доступные только в онлайновом режиме.
  • Для ресурсов, которые не доступны в оффлайновом режиме, отображается fallback-страница.

Файл манифеста состоит из трех разделов: CACHE, NETWORK, FALLBACK . Страницы и ресурсы, перечисленные в разделе CACHE , кэшируются на локальной системе. Страницы и ресурсы, перечисленные в разделе NETWORK , никогда не кэшируются и доступны только в онлайновом режиме. Страница, указанная в разделе FALLBACK , отображается, если требуемая страница недоступна в оффлайновом режиме. Символ ( * ) в разделе NETWORK указывает, что все остальные страницы и сервлеты доступны только в онлайновом режиме. Если символ ( * ) отсутствует, вызовы сервлета окажутся неудачными (даже в онлайновом режиме). В листинге 8 показан файл манифеста для приложения Contact Manager.

Листинг 8. Манифест оффлайнового приложения

Важная информация для работы с оффлайновыми приложениями.

  • Расширение файла манифеста оффлайнового приложения .appcache должно быть отображено на MIME-тип text/cache-manifest . В среде Apache Tomcat эта задача решается посредством добавления элемента mime-mapping в файл web.xml сервера (а не в файл web.xml веб-приложения). Большинство браузеров молча игнорирует манифест оффлайнового приложения, если его MIME-тип является некорректным.
  • Если файл манифеста оффлайнового приложения присутствует, всегда используется ресурс, кэшированный на локальной системе (даже при нахождении в онлайновом режиме).
  • Локальный ресурс обновляется только в том случае, если изменяется файл манифеста оффлайнового приложения; как правило, посредством изменения номера версии в комментариях внутри файла манифеста. Изменения HTML-ресурсов или CSS-ресурсов не отражаются в веб-браузере до тех пор, пока файл манифеста приложения не будет изменен.
  • Каждая страница, поддерживающая оффлайновое использование, должна иметь следующую строку:

Онлайновое или оффлайновое приложение

JavaScript позволяет обнаружить, является ли приложение онлайновым или оффлайновым. Эта задача решается с помощью логической переменной navigator.onLine . Если приложение является онлайновым, то эта переменная возвращает значение True.

События форм (обработка в онлайновом и в оффлайновом режиме)

В приложении Contact Manager одна и та же форма используется и в онлайновом, и в оффлайновом режиме. Чтобы это решение работало, необходимы обработчики событий форм и кнопок. Проверьте значение переменной navigator.onLine с целью определения того, какую операцию следует вызвать (локальную или онлайновую). В листинге 9 показан пример для загрузки контактных данных.

Листинг 9. Загрузка данных (в событии onLoad)

Синхронизация данных

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

В оффлайновом режиме все CRUD-операции для сохранения изменений используют локального провайдера данных. После восстановления соединения с сервером производятся следующие действия.

  • Все записи, которые были созданы на локальной системе, сохраняются на сервере.
  • Все записи, которые были изменены на локальной системе, обновляются на сервере.
  • Все записи, которые были удалены на локальной системе, удаляются на сервере.

Полный текст метода синхронизации показан в листинге 10. В процессе синхронизации одни и те же онлайновые функции используются для операций создания, обновления и удаления. Первый шаг состоит в итеративном прохождении по локальным записям с помощью jQuery-функции $.each .

Записи, которые были обновлены или созданы на локальной системе, помечаются с помощью свойства isDirty . Операция Save (сохранить) идентифицируется как новая, если ее уникальный идентификатор записи имеет отрицательное значение (т.е. база данных MySQL не присвоила ему какого-либо значения). Записи, которые были удалены на локальной системе, помечаются с помощью свойства isDeleted .

Листинг 10. Синхронизация оффлайновых изменений с сервером

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

Заключение

На примере учебного приложения в статье были продемонстрированы рекомендации по поддержке онлайнового и оффлайнового режимов работы. Единообразные пользовательские возможности обеспечиваются посредством использования одной и той же HTML-страницы для онлайнового и оффлайнового режимов, а также посредством вызова надлежащих онлайновых/оффлайновых провайдеров данных в обработчиках событий форм в соответствии с текущим состоянием (онлайновым или оффлайновым).

Алгоритм синхронизации данных обеспечивает надежный фундамент; он осуществляет синхронизацию результатов оффлайнового создания, удаления и изменения записей. Следует, однако, отметить, что этот программный код еще не готов к использованию в производственной среде. Например, он не обрабатывает конфликтов, когда одна и та же запись изменена вами в локальной системе и другим пользователем на сервере.

Комментировать
2 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock detector