我想知道我们应该在可以从原始数据和额外可用信息(来自浏览器会话,用户界面......或其他任何方面)计算的API值中添加哪个范围
例如,我们可以让API返回此JSON:
{
ownder_id: '123',
canAddComment: true,
etc...
}
这给了我们价值" canAddComment"直。 或者我们可以拥有这个:
{
ownder_id: '123',
etc...
}
其中,可以从owner_id
计算评论。例如,如果会话owner_id
与从API收到的会话不同,则用户可以添加注释。
我们可以在Javascript中完成此操作:
//supposing we have a session object with our browser session values
var params = {owner_id: session.owner_id};
$.post(apiURL, params, function(data){
var result = JSON.parse(data);
//processing the data
result["canAddComments"] = result.owner_id !== session.owner_id;
//do whatever with it
});
最好的方法是什么?在这种情况下推荐的是什么?
答案 0 :(得分:0)
我不确定你想知道什么。但我的第一反应是你用它来制作一个功能。
// constructor
function Comment() {
this.owner_id;
this.canAddComment = function() {
return session.user_id === this.owner_id;
}
}
var session = {
user_id: 22,
name: 'Kevin'
};
var my_comment = new Comment();
my_comment.owner_id = 15;
if(my_comment.canAddComment()) {
$.ajax({
// now read the form and submit the data ...
})
}
else {
alert('Only the author of this message can update ...');
}
编辑:
我的问题主要是,如果最好在后端计算,或在检索API数据后计算。
不确定是否有通用答案。一些参数:如果您希望该方法保密,则必须在服务器端执行此操作。在其他情况下,我认为让客户端PC使用其处理能力是完全合理的。
好的,一个例子:排序。假设有一个充满数据的表格;点击头部按照该列对表格进行排序。将所有数据发送到服务器,让它对表进行排序并返回一组键是否有意义?不,我认为让客户处理这个更有意义。 http://tablesorter.com/docs/
与谷歌地图类似:您将标记拖动到某个地方,然后程序必须计算最近的5个公交站点。好吧,显然你在客户端计算所有这些。