在jQuery中使用replaceWIth是否存在数据大小限制?

时间:2012-04-12 23:43:54

标签: 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#程序中编写webdata内容,这可能更有效,但是应该避免页面重新加载,具体取决于拥有该网站的人员。我将尝试给出的建议。

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

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

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

1 个答案:

答案 0 :(得分:0)

老实说,我认为你在这里做错了。

在我看来,当你只是简单地用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显示属性实际上没有改变。