Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在asp.net mvc中加载大表单_Asp.net Mvc_Form Data - Fatal编程技术网

Asp.net mvc 在asp.net mvc中加载大表单

Asp.net mvc 在asp.net mvc中加载大表单,asp.net-mvc,form-data,Asp.net Mvc,Form Data,我在asp.NETMVC中加载了一个大表单。我的表格有一些页面,每个页面都有一些问题,每个问题都有一些选择 我想为用户加载一个表单及其所有项目,但它太大太慢了。 我有以下选择: 服务器缓存:但对于某些用户,问题必须随机或动态选择 制作html页面并存储在服务器中 您是否有任何解决方案或链接可以让MVC在加载大表单时获得更好的性能。这实际上取决于您构建“表单页面”的方式。我在这里看到两种情况:“页面”的数量是已知的(恒定的)且相对较小,或者“表单页面”的数量未知 在第一种情况下,我建议使用选项卡显

我在asp.NETMVC中加载了一个大表单。我的表格有一些页面,每个页面都有一些问题,每个问题都有一些选择

我想为用户加载一个表单及其所有项目,但它太大太慢了。 我有以下选择:

  • 服务器缓存:但对于某些用户,问题必须随机或动态选择

  • 制作html页面并存储在服务器中


  • 您是否有任何解决方案或链接可以让MVC在加载大表单时获得更好的性能。

    这实际上取决于您构建“表单页面”的方式。我在这里看到两种情况:“页面”的数量是已知的(恒定的)且相对较小,或者“表单页面”的数量未知

    在第一种情况下,我建议使用选项卡显示结构,其中每个“页面”都是一个选项卡。当用户选择每个选项卡时,它的内容将被延迟加载(使用Ajax)。这样,您就不必从一开始就加载所有页面和问题。作为一个额外的随机想法,提交按钮将被禁用,直到所有问题都得到回答;这样,用户就可以提交“部分表单”

    在第二种情况下,您可以选择
    Next Page
    方法,向用户展示导航到问题“Next Page”的可能性。在加载下一页之前,您将生成包含当前页结果的隐藏字段,这样您就不会丢失表单数据,并且可以成功提交所有问题和答案

    回答你的问题:当涉及到随机性时,我看不到直接的解决方案。您不能也不应该为每个可能的可用组合(静态或缓存中)生成页面。这可能适用于相对较少的页面和问题,但我并不认为这是一个可行的解决方案。您描述的场景适合“Ajax请求体系结构”(我提出了这个表达式,但基本上就是这样的:以Ajax为中心的设计)


    编辑:第三种解决方案是将所有问题和答案序列化为一个Json对象,并逐渐将问题呈现到页面中。这个解决方案的缺点是您必须在JavaScript中实现很多逻辑

    看看这个:对不起,我不明白第二种情况,在第一种情况下,我必须加载一个页面的所有问题,我可以缓存问题而不是页面,如果有必要,我可以随机提问。。。你能解释第二种情况吗?第二种情况与第一种情况非常相似,但你没有标签。您将有一个单一(部分)视图。这一观点的内容将是当前的一系列问题。用户回答完所有问题后,可以按下按钮(比如“下一页”),将当前问题集保存到隐藏字段(以便可以发布数据)甚至JavaScript对象中,然后加载下一组问题。你需要调用一个控制器来“给你”下一组。好的,这很好实现…但是…在第1页中,我有20个问题,当1000个用户打开第1页时,这对我的网站来说是一个糟糕的时刻,速度很慢,解决方案是什么?如果你使用JavaScript将问题呈现给浏览器的负担转移到浏览器上,您的应用程序只需考虑向客户端提供数据(可能是Json格式)。在客户端,除了从服务器获取问题所需的时间外,页面的加载速度将与浏览器生成页面的速度一样快。