Проблем с ajax и chrome

Илиян

Active Member
Здравейте, пробвам един скрипт за зареждане на допълнителни страници от базата при скролване и нещо не иска да работи коректно под chrome.
Това е JS кода:
Код:
<script type="text/javascript" src="js/jquery-1.9.0.min.js"></script>
<script type="text/javascript">
var track_page = 1; //track user scroll as page number, right now page number is 1
var loading  = false; //prevents multiple loads

load_contents(track_page); //initial content load

$(window).scroll(function() { //detect page scroll
    if($(window).scrollTop() + $(window).height() >= $(document).height()) { //if user scrolled to bottom of the page
        track_page++; //page number increment
        load_contents(track_page); //load content   
    }
});       
//Ajax load function
function load_contents(track_page){
    if(loading == false){
        loading = true;  //set loading flag on
        $('.loading-info').show(); //show loading animation
        $.post( 'fetch_pages.php', {'page': track_page}, function(data){
            loading = false; //set loading flag off once the content is loaded
            if(data.trim().length == 0){
                //notify user if nothing to load
                $('.loading-info').html("No more records!");
                return;
            }
            $('.loading-info').hide(); //hide loading animation once data is received
            $("#results").append(data); //append data into #results element
        
        }).fail(function(xhr, ajaxOptions, thrownError) { //any errors?
            alert(thrownError); //alert with HTTP error
        })
    }
}
</script>

Това е PHP - макар, че при него всичко е ясно и едва ли проблема е там:
Код:
include("config.inc.php"); //include config file
//sanitize post value
$page_number = filter_var($_POST["page"], FILTER_SANITIZE_NUMBER_INT, FILTER_FLAG_STRIP_HIGH);

//throw HTTP error if page number is not valid
if(!is_numeric($page_number)){
    header('HTTP/1.1 500 Invalid page number!');
    exit();
}

//get current starting point of records
$position = (($page_number-1) * $item_per_page);

//fetch records using page position and item per page.
$results = $mysqli->prepare("SELECT id, name, message FROM paginate ORDER BY id DESC LIMIT ?, ?");

//bind parameters for markers, where (s = string, i = integer, d = double,  b = blob)
//for more info https://www.sanwebe.com/2013/03/basic-php-mysqli-usage
$results->bind_param("dd", $position, $item_per_page);
$results->execute(); //Execute prepared Query
$results->bind_result($id, $name, $message); //bind variables to prepared statement

//output results from database
while($results->fetch()){ //fetch values
    echo '<li>'.$id.') <strong>'.$name.'</strong> : '.$message.'</li>';
}

Под firefox всичко работи напълно нормално - изкарва си първите резултати и като скролна вади следващите, след това следващите и т.н. При chrome обаче ми вади или само първите и вторите и след това изписва, че няма повече резултати, или вади първите и вторите наведнъж и пак не стига до края. Знаете ли откъде може да е проблема - вижда се, че се предава POST към php от ajax, за да се знае коя страница да зареди, но май-проблема е в javascripta и по някакъв начин не ми отчита правилно страниците при chrome.
 

Горе