Следующий javascript должен установить интервал, чтобы новый элемент из списка объектов json медленно добавлялся в верхнюю часть списка, но вместо этого все они добавлялись одновременно.
<script type = "text/javascript">
var json;
var count = 0;
$(document).ready(function() {
$.ajax({
type: "POST",
url: "/Home/PublicTimeLine",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
json = eval(msg);
createRow();
}
});
});
function createRow() {
if (count < json.length) {
var data = json[count];
var row = document.createElement("div");
$(row).hide();
row.appendChild(document.createTextNode(data.text));
$(document).find("#results").prepend(row);
$(row).fadeIn("slow");
count++;
setTimeout(createRow(), 3000);
}
}
</script>
<div id = "results">
</div>





На вашем месте я бы подошел к этому немного иначе. Почему бы не добавить все данные на свою страницу, а просто скрыть их и показывать только тогда, когда вы этого хотите. Таким образом, вам не придется беспокоиться о закрытии и прочем.
var intervalId;
$.ajax({
type: "POST",
url: "/Home/PublicTimeLine",
dataType : "json",
success : function (msg) {
var json = eval(msg); // is this even needed?
$.each(json, function(ind, data) {
$("<div></div>") // use jQuery to create the div
.hide()
.text(data) // you can use jQuery to add contents too. (use .html() if you need HTML)
.prependTo('#results')
;
});
intervalId = setInterval(showRow, 3000);
}
});
function showRow() {
var $myDiv = $('#results div:hidden:last');
if ($myDiv.length) {
$myDiv.show('slow');
} else {
clearInterval(intervalId); // none more to show, stop checking
}
}