onpage模式更好还是外部?

时间:2014-01-11 08:55:04

标签: ruby-on-rails performance

我可以在轨道上的ruby中使用两个插件。一个叫fancybox,另一个是bootstrap模态。它有两种不同的工作方式。如果我使用fancybox,我将不得不创建另一个视图,它将作为模板服务器,模式将获取数据。

EX:我有一个登录按钮/home/index包含一个链接。按下链接后,它会从/home/login/login/modal或我决定使用其他任何地方加载模板。

另一方面,bootstrap模式的信息和数据位于同一页面上。如果存在链接并且按下该链接,则会从同一视图加载数据。

对于fancybox,你必须创建一个单独的视图,但是对于bootstrap,你必须在一个页面上拥有所有内容。

我想知道每种方法的利弊是什么,哪种方式最终会更好。

1 个答案:

答案 0 :(得分:1)

  

对于bootstrap模式,您不必加载将在模式中的数据   同一页。在不止一个场合,我用jquery做了一个   $ .get并简单地将响应html加载到bootstrap模态体中。   您所要做的就是给模态体提供一个id或使用.modal-body类。有关代码示例,请参阅此答案的底部

回答有关利弊的问题:

从其他视图加载

优点:   

  • 代码封装在该视图中,可以轻松地重复使用和测试
  •   
  • 如果生成的视图很重或需要一段时间来加载/处理,那么您的初始页面加载不会陷入困境,只有在用户请求时才会产生重负荷
  • CONS:   

  • 代码位于一个单独的区域,对于其他想要关注的人来说可能会造成混淆
  •   
  • 在模态
  • 内查看非常简单的视图

    从同一视图加载

    优点:   

  • 代码简单易懂
  • CONS:   

  • 代码无法重复使用,复制粘贴几次后,维护噩梦
  •   
  • 当用户

    无法查看时,重载代码会导致页面陷入困境

    如果有兴趣,这里是我如何使用jquery从另一个视图加载twitter bootstrap模式:

    $.post("myOtherView.aspx", null, function (response) {
        if (typeof console == "object") { console.log("Response: " + response); }
        $('#myModal .modal-body').html(response);
    });
    
    $('#myModal').modal();