2011-08-01 52 views
0

这是一种奇怪的问题,但我真的对网络开发非常陌生,对我来说(作为桌面开发人员)我感觉很奇怪。动态更新视图,使用ajax和更多模型加载模型

我创建了一个虚拟项目来测试的东西:

我想说明(<li>项目)列表,并要添加使用Ajax更多音符。

我会告诉我的jQuery(抱歉西班牙文/英文混合,只是灰尘的代码,我扔想也没想就名):

<script type="text/javascript"> 
$(function() { 

    AddNotes(); 

    $("#NuevaNotaForm").submit(function (event) { 
     event.preventDefault(); 

     var form = $(this); 
     $.ajax({ 
      url: form.attr("action"), 
      data: form.serialize(), 
      success: function (data) { 
       AddNotes(); 
      } 
     }); 
    }); 
}); 

function UpdateNotes(notes) { 
    $(".Nota").each(function (index, element) { 
     var fecha = $(element).find(".Nota-fecha"); 
     var nota = $(element).find(".Nota-Derecha"); 

     fecha.height(nota.height()); 

     fecha.css('background-color', ($(notes).get(index)).Fondo); 
     nota.css('background-color', ($(notes).get(index)).Fondo); 

     fecha.css('color', $(notes).get(index).Texto); 
     nota.css('color', ($(notes).get(index)).Texto); 
    }); 
} 

function GetNotes() { 
    $.ajax({ 
     url: '@Url.Action("GetNotes")', 
     dataType: 'json', 
     data: '{}', 
     success: function (data) { 
      UpdateNotes(data); 
     } 
    }); 
} 

function AddNotes() { 
    $.ajax({ 
     url: '@Url.Action("RenderNotes")', 
     success: function (data) { 
      $("#cajaNotas").empty().append(data); 
      GetNotes(); 
     } 
    }); 
} 

所以,我有一个partialview(# cajaNotas)我在那里渲染的笔记清单如下:

我开始对渲染partialview的“RenderNotes”进行查询,所以我清理div并放置partialview(我这样做是因为当我需要一个新笔记时,我必须“刷新”div,并首次显示注释)。

当我渲染笔记时,我制作了另一个ajax来获取Json(笔记列表),并使用该列表更新一些CSS)。

我觉得很奇怪,因为所有这些ajax调用都让我的网络变慢了。这些笔记花费了半秒的时间来显示,当我添加一个新笔记(使用表格(#nuevaNotaForm“)时,它会更加猛烈(因为刷新)。

所以问题是:Web开发是否很奇怪?我认为这是一个奇怪的做3阿贾克斯呼吁这个小例子

当我看着萤火虫,它等到页面加载(我必须等待追加partialview,对吧?)和然后打电话来获得部分视图,当它完成后,它等待获取笔记,总之,像1秒的电话。

无论如何,有人可以给我一些光?(代码是不干净,但我需要去知道我在做什么)

回答

0

答案是Knockoutjs。代码已被简化并且工作正常。

0

当您第一次加载页面时,首先使用内置帮助器之一(如@ Html.Partial)在服务器端渲染局部视图。

+0

第一次运行时忽略1个ajax调用的一点改进,但​​仍然有点瑕疵:P –