非常滞后在UpdatePanel内的FireFox中的asp.net LinkBut​​ton的响应能力

时间:2011-02-28 13:32:01

标签: javascript asp.net performance

基于UserControl的asp.net应用程序中的LinkBut​​ton有点问题。在Firefox中,只需单击LinkBut​​ton就不会执行任何操作。您必须按住LinkBut​​ton约。 800ms成功触发PostBack。

编辑:焦点大纲也是滞后的。当我点击LinkBut​​ton时,轮廓更改需要大约相同的时间来按住按钮触发回发。

备注:

  • 网络应用程序和LinkBut​​tons在IE和Chrome中完美运行
  • javascript库(外部和内部)当前既没有模糊也没有压缩

这是asp.net标记:

<li id="liMemberGetPerson" runat="server" class="inactive clear">
  <div class="tab clear">
      <div class="tab-left"></div>
        <div class="tab-main">                            
            <asp:LinkButton ID="lbPersonArea" runat="server"
                Text="Person" CausesValidation="false"
                OnCommand="OnMemberViewAspectChange"
                CommandArgument="MemberGetPerson" />
        </div>
        <div class="tab-right"></div>
    </div>                                    
</li>

编辑:“代码隐藏”:

protected void OnMemberViewAspectChange(Object sender, CommandEventArgs e){
  AppAction currentAction = HistoryManagerFactory.GetCommandManager().GetCurrentCommand();
  AppAction newAction = new AppAction();
  newAction.ViewType = ViewType.MemberView;
  newAction.AspectType = (AspectType)Enum.Parse(typeof(AspectType), e.CommandArgument.ToString());
  newAction.ObjectID = currentAction.ObjectID;
  newAction.Mode = currentAction.Mode;

  HistoryManagerFactory.GetCommandManager().AddNewCommand(newAction);

  ChangeAspect( newAction );}

ChangeAspect()方法调用呈现相应的View(UserControl)。

我尝试了以下但没有成功:

  • 禁用Firefox客户端缓存
  • 禁用部分页面更新(禁用UpdatePanels)

如果有人遇到过这个问题,我会非常感谢您听到任何可能的解决方案。

亲切的问候

奥莱

3 个答案:

答案 0 :(得分:1)

我已经解决了这个问题,如果有人想知道,这就是解决方案。

正如您在原始问题中看到的那样,LinkBut​​ton是List Item(li)块的一部分。列表项已设置为标签控件,每个选项卡标题都带有圆角。涉及此<ul>的css类具有以下属性:

display:inline;

我没有完全理解,为什么这会影响LinkBut​​ton内部的响应能力,但无论如何,删除它解决了这个问题。

答案 1 :(得分:0)

你提到了javascript库 - 是否有可能有事件处理程序捕获LinkBut​​ton或其父项的点击事件?使用FireBug调试javascript,在呈现的<a href ... onclick="javascript:WebForm_DoPostBackWithOptions(...)">标记的行处设置断点,单击,然后查看您被阻止的位置。

答案 2 :(得分:0)

尝试使用OnClick事件代替OnCommand ...所有浏览器都能识别Onclick