javascript – 关于将大字符串发布到Web服务的建议

前端之家收集整理的这篇文章主要介绍了javascript – 关于将大字符串发布到Web服务的建议前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
下面是我的数组:
var.child.Cars1 = { name:null,operation:0,selected : false}

现在在上面的数组中,selected属性表示checkBox的check / uncheck状态,我使用json.stringify将数组上面的数据发布到Web服务(WCF)作为字符串.

上面的数组包含2000 – 4000条记录,现在用户可以选中/取消选中复选框.

现在考虑上面数组中有4000条记录,其中有2000条记录被检查,2000条记录未经检查.在我的网络服务中,我只处理那些被检查的记录.我删除所选值为false的记录.

现在由于4000记录它是一个巨大的json字符串,因此我从Web服务端得到错误

Error :  (413) Request Entity Too Large

现在我没有过滤掉选择为flase的记录的原因是因为它会在客户端浏览器上产生大量开销,甚至可以挂起浏览器,所以我现在在服务器端这样做.

所以我的问题是我应该在客户端筛选出被选为false的记录,然后仅发布2000条记录或者我正在做的是正确的方式.

我在脑海中有一些问题,发布如此巨大的json字符串将再次需要一些时间并过滤掉选择为false的记录也将在浏览器上投入大量开销.

所以我不确定我做错了什么.

任何人都可以指导我这个???

解决方法

通常,如果您开始遇到像这样的大型请求大小问题,那么这是一个很好的机会来查看优化而不是覆盖的方法.很多人都试图提供解决问题的方法,但是没有提供关于不绕过它的方法的见解,而是改进了设计以使其更轻量级.

以下是一些可能性:

您是否考虑过分页请求?这将允许您根据需要异步加载客户端上的数据,从而防止请求花费太长时间,提高网站的响应能力,并减少客户端和服务器内存上的任何负担.您可以在用户滚动时抢先加载数据,如果需要,如果过程耗时太长,则向用户提供某种娱乐/反馈,因此他们知道正在加载更多数据.

您是否考虑过将属性名称更改为更短,更少描述性,从而减少对象本身的占用空间?例如:

您当前的型号:

{name:null,operation:0,selected:false}

简化模型:

{n:null,o:0,s:false}

像这样的方法会使得阅读JSON本身变得更加困难,但JSON并不仅仅是为了让人们阅读,而是用于序列化数据;虽然,这可以通过记录您的模型来克服.这样做可能有助于将发送的数据减少多达30%.

我不能提供一个完整的解决方案,因为你将不得不问自己很多关于你想要实现什么,谁将消费数据的难题,以及如何实现这一目标的最佳方式.

此外,我强烈考虑质疑为什么一个过程需要用户同时与2000个记录进行交互.我并不是在批评,而是说你需要仔细研究你想要实现的业务流程,因为可能存在严重的重复性问题,对用户的压力以及更多,这将极大地影响你的应用程序对最终用户有效且有用.作为一个例子,有没有办法可以将任务分解为更小,更乏味的块,以便最终用户在2小时内不会盯着4000个复选框?

这可能不是您正在寻找的答案,因为它会打开大量的其他问题,但希望它能帮助您开始制定有助于确定最终答案的问题.

原文链接:https://www.f2er.com/js/158126.html

猜你在找的JavaScript相关文章