jQuery.ajax:如何限制从远程服务器处理的数据?

时间:2010-11-11 17:59:19

标签: jquery

在下面的代码中,当输入字符串是“tobacco”(没有引号)时,alert函数会以无限循环的方式触发。 “条款”派生自结果集(设置为50,以确保为关键字设置丰富的数据集)。但是,对于某些术语,返回的关键字数量太高了。

我可以在下面的脚本中为要设置的关键字数量设置最大值,然后在达到最大值后再继续?

    jQuery.ajax({
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        url: "http://boss.yahooapis.com/ysearch/web/v1/"
        +jQuery('#my_keyword').val()+"?"
        +"appid=myID"
        +"&lang=en"
        +"&format=json"
        +"&count=50"
        +"&view=keyterms"
        +"&callback=?", 
        success: function(data)
            {
                var keywords = new Array();
                jQuery.each(data['ysearchresponse']['resultset_web'],
                        function(i,item) 
                            {
                            jQuery.each(item['keyterms']['terms'], 
                            function(i,kw)
                                {
                                key = kw.toLowerCase();
                                alert(key);

1 个答案:

答案 0 :(得分:0)

我不是100%确定我理解这个问题,但如果您只是想限制迭代的关键字数量,为什么不设置限制计数器呢?

jQuery.ajax({
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    url: "http://boss.yahooapis.com/ysearch/web/v1/"
    +jQuery('#my_keyword').val()+"?"
    +"appid=myID"
    +"&lang=en"
    +"&format=json"
    +"&count=50"
    +"&view=keyterms"
    +"&callback=?", 
    success: function(data)
        {
            var keywords = new Array();
            var keywordsNumber = 0;
            var keywordsMax = 20;
            jQuery.each(data['ysearchresponse']['resultset_web'],
                    function(i,item) 
                        {
                        if (keywordNumber == keywordsMax) { return false; } // Same as 'continue' in a regular loop
                        jQuery.each(item['keyterms']['terms'], 
                        function(i,kw)
                            {
                            key = kw.toLowerCase();
                            keywordsNumber++;
                            alert(key);