0

我正在使用暴雪魔兽世界军械库 API 编写代码。它很安静,但我想知道我的代码是否是最佳的,我能做些什么来改进它?它工作得很好,我只需要确保我是否充分利用了数据获取。

这是基本的 HTML

<div id="title">Test</div>
<div id="chevoPoints">Test</div>
<div id="stat">Test</div>
<div id="realm">Test</div>
<div id="race">Test</div>
<div id="items">Test</div>
<img id="thumbnail" src="" />

这里是java

$(document).ready(
        //Fetch RESTful data
        function getSite(){
            $.ajax({
                url: "http://eu.battle.net/api/wow/character/server/character?fields=titles,achievements,appearance,feed,stats,races,items&jsonp=GoGet",
                type: 'GET',
                dataType: 'jsonp'
                });
            }
        );  

        //Display the data
        function GoGet(data) {
            $("#title").html(data.name),
            $("#chevoPoints").html(data.achievementPoints),
            $("#stat").html(data.stats.armor),
            $("#realm").html(data.realm),
            $("#race").html(data.race),             
            $("#items").html("The back is called" + "&nbsp;" + data.items.back.name + "&nbsp;" + "and looks like" + "&nbsp;" + "<img src=http://media.blizzard.com/wow/icons/56/" + data.items.back.icon + ".jpg />"),
            $("#thumbnail").attr('src', "http://eu.battle.net/static-render/eu/" + data.thumbnail)
        ;}      
4

1 回答 1

2

它看起来很安静,虽然我至少添加了几件事:

 data: {format: 'json' },   //or any other format the data wil return
 error: { function(){alert('Something went wrong');}  //error-handling, what happens when no data was retrieved

然后根据您想要做什么,您还可以在请求中添加一些缓存等。可以在这里找到所有可选参数的好读物:http ://www.sitepoint.com/use-jquerys-ajax-function/ 。

编辑:如果您的成功响应有多个项目,您可以像这样循环遍历它们:

 success: function (response) {
       //your list
       var t = $("<ul id='nameList'></ul>");
       //loop through the different items
       for (var i=0; i<response.d.length; i++) {
             //for each item you do stuff here, for example, wrap the name in a list-item
             i.name.appendTo(t).wrap("<li></li>")      
  });

您也可以使用 $.each 来执行此操作

 succes: $.each(response, function(index, data){
         //do stuff   
 });
于 2014-11-20T17:29:41.760 回答