【问题标题】:Unique dynamically created element ids唯一动态创建的元素 ID
【发布时间】:2011-11-06 17:30:12
【问题描述】:

我正在构建一个网站,允许用户使用 JavaScript 和 jQuery 将元素拖到屏幕上。我想将这些元素存储在数据库中,然后在他们再次访问该网站时将它们重新绘制到屏幕上。

每个元素都需要一个唯一的 id,这将在执行一些功能时使用,例如 addComment(id), editElement(id).

每次添加元素时都会增加一个 id 计数,并且这个 id 计数将分配给已创建的元素,例如

  • 第一个元素 id = 1
  • 第二个元素 id = 2...等

什么是持续跟踪此 ID 计数的安全方法?它需要在客户端和服务器端使用。

我不确定为什么这会被否决,这是一个非常明确的问题。

解决方案: 我将在数据库中存储元素 id 和元素总数,每次创建元素时,将使用 ajax 调用将 id 分配给该元素(这将是元素类型与数量连接以前创建的元素),然后将其存储在数据库中。

【问题讨论】:

  • 请注意,ID 不应以数字开头。
  • 将它们存储在数据库中。说真的,你的问题是什么?
  • “安全方法”是什么意思?客户端和服务器端保持相同值的“安全”,并且永远不会有任何差异吗?这个 id 计数必须保持每个用户还是全局计数?
  • @Jmax 在数据库中存储创建元素的属性有什么问题?

标签: php javascript jquery dhtml uniqueidentifier


【解决方案1】:

如果您要将组件添加到数据库,那么我会使用数据库中的标识作为 ID(带有某种前缀,即“component1”、“component2”等)。这样您就可以确定该值是唯一的。

【讨论】:

    【解决方案2】:

    假设您将它们保存在数据库中,为什么不直接使用数据库的自动增量功能呢?这样,您将拥有数据库中每个元素的唯一 ID。

    另一种可能性是使用 PHP 的 uniqid(),它将输出一个长的随机 ID 供您的元素使用。

    【讨论】:

      【解决方案3】:

      使用 TIMESTAMP(date+time(upto - millisecs)) 之类的构造方法返回唯一的起始 ID。添加一个额外的数字,增加它。之后在制作 ID 之前,将其附加到 CID+timeStampID 之类的字符串中。

      说真的,我不明白你想要达到什么目的。任何方式都可以生成唯一的 ID。保持它取决于你 万事如意

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-07
        • 1970-01-01
        • 2011-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-17
        相关资源
        最近更新 更多