ASP.NET MVC 2 Popup对话框 - 性能和奇怪的行为

时间:2010-06-30 13:42:14

标签: asp.net-mvc asp.net-mvc-2 popup

我在我的Index.aspx中使用它:

<%= Html.StandardOverlayCreateButton() %>
<div class="apple_overlay" id="overlay">
    <div class="contentWrap">
    </div>
</div>

这正在转化为:

<a href="Employee/Create" rel="#overlay"><button type="button">Create</button></a>
<div class="apple_overlay" id="overlay">
    <div class="contentWrap">
    </div>
</div>

当您按下按钮时,会出现带有Create.aspx的弹出窗口。看看这个 - &gt; Loading external pages into overlay

对我而言,叠加效果似乎很慢。

并且有一些奇怪的行为,因为我几乎每次都能看到弹出窗口中的旧值。如果我单击编辑按钮,然后关闭弹出窗口并单击另一个编辑按钮,我可以在短时间内看到旧值。

有没有更好的方法使用ASP.NET MVC和jQuery进行弹出窗口?

有教程吗?

3 个答案:

答案 0 :(得分:1)

你真的需要动画吗?

也许您不需要effect: 'apple'属性?

效果很慢,特别是在IE上。

http://flowplayer.org/tools/overlay/index.html#api

答案 1 :(得分:1)

一切都在客户端完成,因此性能完全取决于JavaScript和jQuery代码,与ASP.NET MVC等任何服务器端代码无关。

你在弹出窗口中使用了很多复杂的效果,我看到<div />调整动画大小,透明度,阴影,作品。 JavaScript性能已经与最近的浏览器实现了跨越式发展,但它的性能却仍然很慢,因为它可以做出非常奢侈的视觉效果。您是否尝试使用您正在使用的任何模式弹出式JavaScript库来调整视觉效果。

  

“并且有一些奇怪的行为,   因为我几乎每次都能看到   弹出窗口中的旧值。如果我点击   编辑按钮然后关闭   弹出并单击另一个编辑按钮,我   可以看到旧的价值短   时间“。

我假设弹出窗口实际上正在加载指向“员工/创建”页面的iframe。我的猜测是,当弹出窗口关闭然后再用另一个页面重新打开时,前一页仍将位于弹出窗口的iframe中,并且“load-new-page / url”事件不是'在弹出窗口重新出现之前触发,因此您可以非常简短地看到旧页面。

我遇到了类似的问题,你需要稍微调整模态弹出行为,以便它首先加载新页面然后打开弹出窗口,而不是相反,它正是它当前正在做的事情。我对此的解决方案有点愚蠢,因为iframe中的页面有$(document).ready({});调用某些JavaScript函数的事件,iframe的父级加载弹出窗口。例如。把它放在iframe内的页面中:

<script type="text/javascript">

    $(document).ready(function()
    {
        window.parent.openPopup();
    });

</script>

然后你需要在iframe的父级中定义'openPopup()'JavaScript方法(即列出你的记录的主页面)。

答案 2 :(得分:0)

here - 不同的帖子但回答与你关于MVC&amp;的问题有关。 jQuery的。