【发布时间】:2018-01-13 17:12:27
【问题描述】:
我在来自不同端点 url 的不同页面上输出 API 数据,即。 https://api.server.com/first、https://api.server.com/second等
代码正在运行,但它似乎非常多余,我相信有更好的表达方式,更优化和更快:
var $rubys = $('#rubys');
$(function () {
$('#loading-rubys').show();
$.ajax({
type: 'GET',
url: 'https://api.server.com/first/',
success: function(rubys) {
$.each(rubys, function(i, ruby) {
$rubys.append('$'+parseFloat(ruby.price).toFixed(2)+' |
$'+parseFloat(ruby.attribute).toFixed(0));
});
},
complete: function(){
$('#loading-rubys').hide();
}
})
});
var $emeralds = $('#emeralds');
$(function () {
$('#loading-emeralds').show();
$.ajax({
type: 'GET',
url: 'https://api.server.com/second/',
success: function(emeralds) {
$.each(emeralds, function(i, emerald) {
$emeralds.append('$'+parseFloat(emerald.price).toFixed(2)+' |
$'+parseFloat(emerald.attribute).toFixed(0));
});
},
complete: function(){
$('#loading-emeralds').hide();
}
})
});
以下内容:
var $rubys = $('#rubys');
$('#loading-rubys').show();
使用 YAML front-matter (Jekyll) 为每个帖子页面设置如下:
---
title: Post about Ruby
var-id: rubys
load-id: loading-rubys
---
并以 HTML 格式输出:
<div id="{{ page.var-id }}">
<div id="{{ page.load-id }}">
<img src="/assets/img/loading.svg"/>
</div>
</div>
当前工作流程
所以基本上每当我创建一个新帖子时,我:
在front-matter中为每个帖子设置
var-id和load-id自定义参数创建一个新函数以包含这些函数并向相应的 url 发出新的 GET 请求,即。
https://api.server.com/third/,https://api.server.com/fourth/。
如何写得更好?
【问题讨论】:
-
这样的问题在stackoverflow上是题外话。您应该考虑在codereview.stackexchange.com 上询问
标签: javascript jquery json ajax api