L oop в транзакциях IndexedDB - PullRequest
0 голосов
/ 26 февраля 2020

Я использую инструмент дизайна продукта "Lumise", который сохраняет гостевые дизайны и загружает их в IndexedDB. Я хочу сохранить данные, которые сохранены в этих хранилищах объектов в таблице MySQL, используя запрос вставки. Я создал файл selectindexeddb. js и файл indexeddbto mysql. php, и уже есть файл для инструмента, который создал IndexedDB и обновляет его, который называется «app-uncompressed. js».

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

подсказка: I Я пытался написать это для l oop в файле lumise js, но он показывает кучу ошибок также потому, что этот файл очень большой. любая помощь?

приложение без сжатия. js:)

https://pastebin.com/cm6aNZ2A

Еще один совет :)

в этом файле вы можете сосредоточиться на 12177 строках, которые начинают создавать IndexedDB

selectindexeddb. js

var db;
var request = indexedDB.open("lumise");
var transaction = db.transaction(["designs"]);
var objectStore = transaction.objectStore("designs");
var request = objectStore.get("K730MRT0"); // this i want it to have it from app_uncompressed.js as a  variable.                              
 // i want to make the loop here ?!

request.onsuccess = function(event) {
// Do something with the request.result!
var designid = request.result.id;
var designname = request.result.name;
var designscreenshot = request.result.screenshot;
console.log("rsults is " + designid);

        $.ajax({
            url: 'indexeddbtomysql.php',
            method: 'POST',
            data: {design_id:designid ,design_name:designname,design_screenshot:designscreenshot },
            success: function(data) {
                alert("saved y marweta ;)")
            }
        });
   }; 

indexeddbto mysql. php

<?php
session_start();
include '../config.php';


$design_id = $_POST['design_id'];
$design_name = $_POST['design_name'];
$design_screenshot = $_POST['design_screenshot'];

$query = 'INSERT INTO `user_designs`( `key`, `name`, `screnshot`) VALUES ($design_id   
,$design_name , $design_screenshot);';

  ?>

обновлено Я пытался поместить для l oop в app_uncompersed.js, но это не сработало

        save : function(ob, storeName, callback) {

            if (this.db == null)
                return callback(null);
                var i ;
             for (i = 0; i < count(rows); i++) {


            var trans = this.db.transaction(ob.length === 2 ?
            [storeName, 'dumb'] : [storeName], "readwrite");
            var store = trans.objectStore(storeName);

            if (ob.id === null || ob.id === undefined)
                ob.id = parseInt(newDate().getTime()/1000)
                .toString(36)+':'+Math.random().toString(36).substr(
                  2);

            var obj = $.extend({
                    created: new Date().getTime()
                }, (ob[0] !== undefined ? ob[0] : ob));

            var process = store.put(obj, obj.id);

            if (typeof callback == 'function')
                process.onsuccess = callback;
                console.log("ABC");

            if (ob[1] !== undefined) {

                var obj_dumb = $.extend({
                    id: obj.id,
                    created: obj.created
                }, ob[1]);

                trans.objectStore('dumb').put(obj_dumb, obj.id);

            }
                    var designid = obj.id; //this var i want to save  
          }
        },

1 Ответ

0 голосов
/ 27 февраля 2020

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

https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB

...