Ombor JS - bu brauzer uchun mo’ljallangan, Firebase uslubidagi sodda va kuchli offline ma’lumotlar bazasi kutubxonasi. U IndexedDB ustida qurilgan bo’lib, foydalanuvchilarga mahalliy ma’lumotlarni oson va samarali tarzda boshqarish imkonini beradi.
Nima uchun Ombor JS?#
Zamonaviy veb-ilovalar ko’pincha offline rejimda ishlashni talab qiladi. Ombor JS quyidagi afzalliklarni taqdim etadi:
- Firebase uslubidagi API - tanish va sodda interfeys
- To’liq offline qo’llab-quvvatlash - internetga ulanishsiz ishlaydi
- IndexedDB asosida - brauzerning asosiy xotira texnologiyasi
- Collection va Document tuzilmasi - ma’lumotlarni tartibli saqlash
- LocalForage kutubxonasi yordamida qurilgan
O’rnatish#
CDN orqali#
Ishlab chiqish (development) uchun:
<script src="https://unpkg.com/Ombor/dist/Ombor.dev.js"></script><script> let db = new Ombor('db')</script>
Ishlab chiqarish (production) uchun:
<script src="https://unpkg.com/Ombor/dist/Ombor.min.js"></script><script> let db = new Ombor('db')</script>
NPM orqali#
npm install Ombor --save
import Ombor from 'Ombor'let db = new Ombor('db')
Asosiy tushunchalar#
Ombor JS Firebase Firestore kabi tuzilishga ega:
- Ma’lumotlar bazasi - bir nechta collection’larni o’z ichiga oladi
- Collection - bir turdagi document’larning to’plami (masalan:
foydalanuvchilar
) - Document - alohida ma’lumot objekti (masalan:
{ id: 1, ism: 'Otabek', yosh: 19 }
)
Oddiy misollar#
Ma’lumot qo’shish#
// Foydalanuvchi qo'shishdb.collection('foydalanuvchilar').add({ id: 1, ism: 'Otabek', yosh: 19, shahar: 'Toshkent'})
Ma’lumotlarni o’qish#
// Barcha foydalanuvchilarni olishdb.collection('foydalanuvchilar').get().then(foydalanuvchilar => { console.log(foydalanuvchilar) // [{ id: 1, ism: 'Otabek', yosh: 19, shahar: 'Toshkent' }]})
Ma’lumotni yangilash#
// Foydalanuvchi ma'lumotlarini yangilashdb.collection('foydalanuvchilar').doc({ id: 1 }).update({ yosh: 20})
Ma’lumotni o’chirish#
// Foydalanuvchini o'chirishdb.collection('foydalanuvchilar').doc({ id: 1 }).delete()
Kengaytirilgan xususiyatlar#
Tartiblash va cheklash#
// Yoshga ko'ra tartiblash va birinchi 5 tasini olishdb.collection('foydalanuvchilar') .orderBy('yosh', 'desc') .limit(5) .get() .then(natija => { console.log(natija) })
Async/Await bilan ishlash#
async function foydalanuvchilarBilanIshlash() { try { // Ma'lumot qo'shish await db.collection('foydalanuvchilar').add({ ism: 'Abdulaziz', yosh: 25 })
// Ma'lumotlarni olish const foydalanuvchilar = await db.collection('foydalanuvchilar').get() console.log('Foydalanuvchilar:', foydalanuvchilar)
} catch (error) { console.error('Xatolik:', error) }}
Kalitlar bilan ishlash#
O’z kalitlaringizni belgilashingiz mumkin:
// O'z kaliti bilan ma'lumot qo'shishdb.collection('foydalanuvchilar').add({ ism: 'Ulugbek', yosh: 22}, 'user-1')
// Kalit orqali ma'lumotni olishdb.collection('foydalanuvchilar').doc('user-1').get()
Real proyekt misoli: To-Do ilovasi#
class TodoApp { constructor() { this.db = new Ombor('todoApp') }
// Yangi vazifa qo'shish async addTodo(text) { await this.db.collection('todos').add({ text: text, completed: false, createdAt: new Date() }) }
// Barcha vazifalarni olish async getTodos() { return await this.db.collection('todos') .orderBy('createdAt', 'desc') .get() }
// Vazifani bajarilgan deb belgilash async completeTodo(todoId) { await this.db.collection('todos') .doc({ id: todoId }) .update({ completed: true }) }
// Vazifani o'chirish async deleteTodo(todoId) { await this.db.collection('todos') .doc({ id: todoId }) .delete() }}
// Ishlatishconst todoApp = new TodoApp()await todoApp.addTodo("Ombor JS o'rganish")const todos = await todoApp.getTodos()console.log(todos)
Debugging va sozlashlar#
Console loglarini o’chirish:
const db = new Ombor('db')db.config.debug = false // Console loglarini o'chirish
Playground#
Ombor JS-ni bevosita brauzerda sinab ko’rish uchun interaktiv playground mavjud:
https://otabekoff.github.io/ombor/playground
Playground’da quyidagi imkoniyatlar mavjud:
- Real-time kod yozish va ishga tushirish
- 6 ta tayyor kod misoli
- IndexedDB ma’lumotlarini tozalash
- Dark/Light theme qo’llab-quvvatlash
Foydalanish holatlari#
Ombor JS quyidagi vazifalar uchun juda mos keladi:
- PWA ilovalar - Progressive Web Apps uchun offline ma’lumot saqlash
- Mahalliy sozlamalar - foydalanuvchi sozlamalarini saqlash
- Cache ma’lumotlar - API dan kelgan ma’lumotlarni vaqtincha saqlash
- Offline-first ilovalar - internetga bog’liq bo’lmagan ilovalar
- Formalar - uzun formlarning oraliq holatini saqlash
Xulosa#
Ombor JS - bu zamonaviy veb-ilovalar uchun sodda va kuchli offline ma’lumotlar bazasi yechimi. Firebase’ning qulayligi va IndexedDB’ning ishonchliligini birlashtirgan bu kutubxona har qanday proyektda foydalanish uchun tayyor.
Batafsil ma’lumot va hujjatlar uchun: Ombor Docs
Eslatma: Zero errors, zero warnings, zero vulnerabilities, zero effort.