【问题标题】:Loop in IndexedDB TransactionsIndexedDB 事务中的循环
【发布时间】:2020-02-26 11:45:15
【问题描述】:

我正在使用产品设计工具“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  
          }
        },

【问题讨论】:

  • 你能展示你尝试过的东西吗?这可能会创造更多的背景。目前这是一个非常密集的问题,并且没有明确定义。
  • 我的问题是我有数据存储在我使用的设计工具的索引 dp 中,我只想在我想要为循环的这三个函数中创建、更新和删除等每个事务每条记录都在 mysql 中更新,但不是从工具 js 文件中更新,因为它是 dum,所以我创建了另一个文件,我试图从中访问索引 dp,顺便说一句,我会更新我的问题,感谢您的评论
  • 你指的是indexeddb还是indexed dp?你能澄清什么是索引dp吗?
  • IndexedDB 你可以通过这个链接了解更多 --> (developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API)

标签: javascript php mysql loops indexeddb


【解决方案1】:

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

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

【讨论】:

  • 我之前已经检查过这个链接,但我找不到我要找的东西,谢谢顺便说一句。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-09
  • 2012-10-28
  • 2013-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多