динамическое получение каналов поиска в Твиттере с помощью ajax - PullRequest
0 голосов
/ 14 апреля 2011

Давным-давно я использовал JSON, и мне удалось получить фиды хеш-тегов из твиттера и фейсбука. Но в настоящее время я просто могу получать каналы, но они не обновляются постоянно, что означает, что они не обновлялись динамически. Я думаю, что мне нужно это изменить, но я не могу этого сделать, так как я не знаю о ajax. Вот код, который я использовал для получения каналов поиска в Твиттере.

$(document).ready(function() 
   {    
   $("#Enter").click(function(event){ 
var searchTerm = $("#search").val()  ; 

var baseUrl = "http://search.twitter.com/search.json?q=%23";
$.getJSON(baseUrl + searchTerm + "&rpp=1500&callback=?", function(data) 
{
$("#tweets").empty(); 
if(data.results.length < 1) 
  $('#tweets').html("No results JOINEVENTUS"); 
$.each(data.results, function()
{
$('<div align="justify"></div>')
.hide()
.append('<hr> <img src="' + this.profile_image_url + '" width="40px" /> ')
.append('<span><a href="http://www.twitter.com/'
+ this.from_user + '">' + this.from_user 
+ '</a> ' + makeLink(this.text) + '</span>')
.appendTo('#tweets') 
.fadeIn(800); 
});
});
});
});

function makeLink(text) 
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;   
return text.replace(exp,"<a href='$1'>$1</a>"); 
} 

1 Ответ

1 голос
/ 14 апреля 2011

Код ниже должен помочь вам.Что я сделал, так это переместил код, который извлекает твиты в функцию.Затем эта функция вызывается каждые X секунд, чтобы обновить окно.Когда пользователь вводит новый критерий поиска и нажимает «Ввод», он сбрасывает таймер.

var fetchSeconds = 30; //Number of seconds between each update
var timeout; //The variable which holds the timeout
$(document).ready(function() {    
    $("#Enter").click(function(event){ 
        //Clear old timeout
        clearTimeout(timeout);
        //Fetch initial tweets
        fetchTweets();
    });
});

function fetchTweets() {
    //Setup to fetch every X seconds
    timeout = setTimeout('fetchTweets()',(fetchSeconds * 1000));
    var searchTerm = $("#search").val(); 
    var baseUrl = "http://search.twitter.com/search.json?q=%23";
    $.getJSON(baseUrl + searchTerm + "&rpp=1500&callback=?", function(data) {
        $("#tweets").empty(); 
        if (data.results.length < 1) {
            $('#tweets').html("No results JOINEVENTUS"); 
        }
        $.each(data.results, function() {
            $('<div align="justify"></div>').hide()
                                            .append('<hr> <img src="' + this.profile_image_url + '" width="40px" /> ')
                                            .append('<span><a href="http://www.twitter.com/'+ this.from_user + '">' + this.from_user + '</a> ' + makeLink(this.text) + '</span>')
                                            .appendTo('#tweets')
                                            .fadeIn(800); 
        });
    });
}

function makeLink(text) {
    var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;   
    return text.replace(exp,"<a href='$1'>$1</a>"); 
}

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...