javascript - jQuery 中使用replaceWIth 的数据大小是否有限制?

标签 javascript jquery

我正在使用 jQuery 中的 replaceWith() 函数来更新我的网页。我从 C# Web 服务程序接收数据,该程序从数据库中提取数据来构建 HTML 代码。除非我替换大量数据,否则它工作正常。在不起作用的示例中,我将网页中的代码替换为 39000 字节的数据。之后,当单击跨度来调用 JavaScript 函数时,我的链接都不起作用。 replaceWith() 函数中使用的数据大小是否有限制?我要替换的 html 代码如下所示:

<td align=left valign=top>
<div id="showitems" class="showitems" style="display:inline; float:left"></div>
 </td>

JavaScript 代码如下所示:

function ShowDinerItems() {

            var gps = document.getElementById("selectdiner").value;
            var pos = gps.indexOf(";");
            var len = gps.length;
            var latitude = document.getElementById("Hiddenlat").value;
            var longitude = document.getElementById("Hiddenlng").value;
            var dinerkey = gps.substring(0, pos);
            PageMethods.CallShowDinerItems(dinerkey, latitude,longitude,               OnShowDinerComplete, OnShowDinerError, dinerkey);
        }

    function OnShowDinerComplete(result) {
        var htmlcode = result[0];
        if (result == 'none') {
                document.getElementById("Message").value = "Search returned no items";

            }
            else {
                var htmlcode = result[0];
                htmlcode = "<div id=\"showitems\" class=\"showitems\"         style=\"display:inline\">" + htmlcode + "</div>";
                $('.showitems').replaceWith(htmlcode); // size of htmlcode is 39849 bytes
                var locations = result[1].split(";");
                var lat = locations[0];
                var lng = locations[1];
                markDiner(lat, lng, "", 'map_canvas');

            }
        }

我使用 jquery 构建网页的原因是为了避免页面重新加载。我可以轻松地在我的 C# 程序中对网络数据内容进行编程,这可能会更有效,但按照网站所有者的规定,应避免页面重新加载。我会尝试给出的建议。

注意:我使用以下代码使其工作。

 $('.showitems').html(result[0]);

使用 .text 不起作用,因为它显示原始数据而不是 html 数据。感谢那些做出贡献的人。

最佳答案

说实话,我认为你在这里的处理方式是错误的。

在我看来,当您可以简单地使用 jQuery 更改其属性时,您正在使用 ReplaceWith 来完全覆盖匹配的标记。

例如:

var htmlcode = result[0];
htmlcode = "<div id=\"showitems\" class=\"showitems\"         style=\"display:inline\">" + htmlcode + "</div>";
$('.showitems').replaceWith(htmlcode); // size of htmlcode is 39849 bytes

可以轻松更改为:

$('.showitems').css('float','none').text(result[0]);

顺便说一句,到底会有多少个 showItem,您如何知道它与从 C# 调用返回的结果数相比如何?

编辑2:抱歉,没有意识到CSS显示属性实际上并没有改变。

关于javascript - jQuery 中使用replaceWIth 的数据大小是否有限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10133387/

相关文章:

javascript - 自创建的 fadeIn() 函数无法正常工作

Javascript - 将 align= 转换为 float : 的方法

javascript - 将 json 字符串转义为十六进制表示法

javascript - 仅使用 JavaScript 将悬停工具提示添加到 id

javascript - 更新函数对话框 jquery php

javascript - 在 grails 中使用 formRemote 后清除文本区域

javascript - 当用户滚动时更改 margin-top

javascript - Angular 使用不同的超时为数组中的每个项目设置动画

javascript - 带有背景图像的 Jquery 悬停类淡入淡出

javascript - 更改 AngularJS 中路由的图标图像