我在来自不同终端网址的不同网页上输出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>
当前工作流程
所以基本上每当我创建一个新帖子时,我:
为前言中的每个帖子设置var-id
和load-id
个自定义参数
创建一个新函数以包含这些函数并对相应的URL发出新的GET请求,即。 https://api.server.com/third/
,https://api.server.com/fourth/
。
你会怎样写得更好?
答案 0 :(得分:0)
这样的事情可能有所帮助。
function getGems(gems,gemsURL) {
var $gems = $('#'+gems);
$('#loading-'+gems).show();
$.ajax({
type: 'GET',
url: gemsURL,
success: function(data) {
$.each(data, function(i, v) {
$gems.append('$'+parseFloat(v.price).toFixed(2)+' |
$'+parseFloat(v.attribute).toFixed(0));
});
},
complete: function(){
$('#loading-'+gems).hide();
}
});
}
$(function () {
getGems('rubys','https://api.server.com/first/');
getGems('emeralds','https://api.server.com/second/')
});