IndexedDB事务中的循环

问题描述 投票:0回答:1

我正在使用产品设计工具“ Lumise”,该工具将来宾设计保存并上传到IndexedDB中。我想使用插入查询将保存在这些对象存储中的数据保存在MySQL表中。我已经创建了一个selectindexeddb.js文件和indexeddbtomysql.php文件,并且该工具已经有了一个文件,该文件创建了IndexedDB并对其进行了更新,名为“ app-uncompressed.js”。

我的问题是:我想使每个事务的循环都发生在设计中,以免创建,更新或删除如何从单独的js文件中进行处理。

提示:我试图在lumise js文件中编写此for循环,但它也显示了很多错误,因为此文件非常大。有帮助吗?

app-uncompressed.js:)

https://pastebin.com/cm6aNZ2A

另一个提示:)

在此文件中,您可以专注于开始创建IndexedDB的12177行

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 ;)")
            }
        });
   }; 

indexeddbtomysql.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);';

  ?>

更新后,我尝试将for循环放入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  
          }
        },
javascript php mysql loops indexeddb
1个回答
0
投票

我目前正在学习IndexedDB,并且发现此链接非常有用。其中有一个教程,涵盖了您要实现的目标。

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

© www.soinside.com 2019 - 2024. All rights reserved.