javascript - 如何在 IE6 中处理带有数千个复选框的页面上的 JavaScript

标签 javascript internet-explorer-6 performance

我在使用 ASP.NET 和一些 javascript 编写的代码时遇到问题,对大约 8,000 个复选框的网格进行的更改回发到服务器。这是,当我测试它时,IE6 的大约 1,000 个复选框似乎一切正常。但现在,导入真实数据后,我被 IE6 的缓慢问题所困扰,而且现实是我编写的代码无法解决问题。

我必须使用 IE6 来测试它,因为不幸的是,客户端要求 Web 应用程序能够完全使用它。如何提高页面速度?

编辑

我计算了页面上的行和列:66 * 110 = 7260 个复选框。

代码

[...]

<asp:Repeater ID="repChkAssociations" runat="server" DataSource="<%#Failures%>">
<ItemTemplate>
    <td style="text-align: center;">
        <asp:CheckBox ID="cbEqClassFailure" runat="server" Enabled="<%#AllowEditAssociations%>"
            ToolTip='ommited code'
            Checked='ommited code'
            OnClick="setIsDirty(true);"
            >
        </asp:CheckBox>
    </td>
</ItemTemplate>

[...]

<script src="~/Scripts/jquery-1.6.1.min.js"></script>

<script type="text/javascript">

    var isDirty;
    var identifiter;

    function SaveAssociation() {
        setIsDirty(false);
    }

    // check if the page has been modified
    function CheckIsDirty(_id) {
        setID(_id);
        if (getIsDirty() == true) {
            ShowConfirmPopup();
        } else {
            ShowGridPopup(); 
        }
    }

    function ShowGridPopup() {
        if (getID() == "EqClasses") {
            ShowClassPopup();
        } else if (getID() == "Failures") {
            ShowFailurePopup();
        }
    }

    // isDirty setter        
    function setIsDirty(changeVal) {
        isDirty = changeVal;
    }

    // isDirty getter
    function getIsDirty() {
        return isDirty;
    }

function ClickSaveButton() {
    var _id = $('a[id$="butSaveAssociation"]').attr("ID");
    __doPostBack(_id.replace("_", "$"), '');
}

function ShowClassPopup() {
    var _id = '<%= eqClassPopup.BehaviorID %>';
    var modal = $find(_id);
    modal.show();
}

function ShowFailurePopup() {
    var _id = '<%= failurePopup.BehaviorID %>';
    var modal = $find(_id);
    modal.show();
}

function ShowConfirmPopup() {
    var _id = '<%= confirmPopup.BehaviorID %>';
    var modal = $find(_id);
    modal.show();
}
</script>

最佳答案

当然,我不知道你在做什么,但是在一页上有 8,000 个复选框对我来说似乎非常用户不友好。考虑添加分页和过滤以将每页复选框的数量保持在 100 以下?

编辑 - 您似乎也认为这是 IE6 的问题。我大胆猜测任何浏览器在处理您所说的音量时都会遇到问题。

双重编辑 - 好的,在查看您的代码后,我确信提高速度的唯一方法是减少网站上的控件数量。你没有在 JS 中做任何疯狂的事情。

关于javascript - 如何在 IE6 中处理带有数千个复选框的页面上的 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6231059/

相关文章:

javascript - 如何使用 javascript 创建一个仅在 IE6 中显示的模板?

sql - 对索引、主键、唯一键的影响的详细信息

.net - 静态属性和锁使用

javascript - (jQuery)滚动事件..如果用户滚动页面,我想将文档滚动到指定的点

javascript - 客户端 Facebook "like gate"不带 https

javascript - 如何从 Django View 返回值?

javascript - 在 IE6 中创建具有 5000 个选项的选择标签的最快方法是什么?

Javascript提示-数据隐藏在ie中

PerformanceObserver 在 Firefox 中抛出错误,在 Chrome 中工作

javascript for 循环百分比计算每 12 个月