php - 关于DomDocument效率的问题

标签 php mysql insert performance domdocument

注意:这是我正在做的练习。

我有一个 php 程序,它使用 DomDocument 修改 html 文档;通过按 ID 插入、删除或编辑元素。程序完成后,它会输出文档供用户查看。

包含插入值的 SQL 表仅被排序/用于提供应该在新元素之前的元素。例如根据指定的列值,找到新元素之前的元素,并在其后插入新元素。

基本上我要问的是,与将所有元素存储在数据库中然后每次都重新创建(各种)html 文件相比,这种方法的效率如何。

附带问题:我想保存每个元素的“历史”。我应该为每个特定元素(例如 a234-history)创建一个新表还是有更好的方法来解决这个问题?

编辑:

代码片段:

警告;前面的意大利面条代码。

    if ($sortby=='newest')
        $query2=mysql_query("SELECT comnum FROM comments WHERE replynum='$x' AND newest <  '$new' ORDER BY newest DESC LIMIT 1");
    else
       $query2=mysql_query("SELECT comnum FROM comments WHERE replynum='$x' AND popularity <  '$random' ORDER BY popularity DESC LIMIT 1");
    $query1= mysql_fetch_object($query2);
    $query=$query1->comnum;
    echo $query;
    $doc = new DOMDocument('1.0', 'utf-8');
    $doc->loadHTML(file_get_contents($sortby.".html"));
    $ap=$doc->createElement('span', "<p class='comm'><b>".$_POST['poster']."</b><span class='reply'> Popularity: ".$random." Post Number:".$data."<a href='javascript:reply(".$data.")'>Reply</a></span><br/>".$_POST['comments']."</p><div class='comm1' id='".$data."'></div>");
    $ap->setAttribute('id',$data.'a');
    if ($query!=false) {
       $query.='a';
       $doc->getElementById($x)->insertBefore($ap, $doc->getElementById($query));
        echo $x;
    }
    else {
         $doc->getElementById($x)->appendChild($ap);
        }
    mysql_close($don);
    $we= $doc->saveHTML();
    $we = preg_replace("/<!DOCTYPE [^>]+>/",'',$we);
    $we = str_replace('<html><body>', '', $we);
    $we = str_replace('</body></html>', '', $we);
    file_put_contents($sortby.".html",htmlspecialchars_decode($we));
    if ($_POST['order']==$sortby)
        echo htmlspecialchars_decode($we);

表结构:

字段类型
公共(public)整数(255)
用户名 varchar(255)
评论文字
replynum int(255)
人气 int(255)
最新的整数(255)

没有指定编码。

最佳答案

如果我理解正确的话,您基本上是在管理 HTML 文档的缓存,这些缓存会随着数据库信息的更改而更改。 这样做的目的是试图实现文档已经存在于用户那里,不需要为他们重新创建。

如果上面写的是正确的,那么它是否是一种有效的方法取决于您的数据的读写比率。 如果每次更新有 1000 次访问,那么您的方法可能比为每次访问创建文档更有效。

要了解您需要达到的准确读/写比率才能被认为是高效的,您将必须运行测试。

关于php - 关于DomDocument效率的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6320244/

相关文章:

sql - 对于 SQL INSERT,以逗号分隔的值列表作为不同的行,而不是作为一行的字段

php - Laravel - Eloquent attach() 不适用于模型

php - 我的 ubuntu 机器上缺少 simplexml,但无法下载

MySQL 在两个数据库之间共享表

mysql - 使用 group_concat 标记查询

php - 在 mysql id 上添加日期前缀

javascript - 获取一个字符串并仅插入该字符串中的数字

javascript - 我应该使用 Assets 文件夹还是公用文件夹?拉维 5.3

php - 如何从 PHP 访问 Sharepoint 列表?

c# - 在数字中插入 1 位 C#