私は数日間jQueryをAJAXで使いこなしています。私はAJAXでいくつかのコンテンツをロードしようとしています - この部分はうまく動作し、その後は別のスクリプトを実行します。しかし、最初のスクリプトがロードされたコンテンツは、2番目のスクリプトが終了するまで表示されません。コードは次のようになります。
$.ajax({
url : folder,
success: function (data) {
$(data).find("a").attr("href", function (i, val) {
if(val.match(/\.(jpe?g|png|gif)$/)) {
var $codeText = "<li class='ui-state-default'><a href='#' data-featherlight='" + folder + val + "'><img src='" + thumbFolder + val + "' data-src='"+ thumbFolder + val + "'/></a></li>";
$("ul[id=sortable]").append($codeText);
$("li").featherlight(folder + val);
};
});
}
})
$(window).ajaxComplete(function(){
console.log("Haba");
var x = 0;
while(x < 50000)
{
console.log("Haba nr "+x);
x++;
}
すべてのコンソールメッセージが表示された後、コード全体がトリガーされますが、画像がWebサイトに表示されます。誰もが写真を最初に表示するために何をすべきか提案はありますか?私もdone()で試してみました。とajaxStop()は効果がありません。
あなたはね'while'ループを使ってブラウザが画像を追加/レンダリングするのをブロックする – Andreas
そしてブラウザを強制する方法を見つけようとしています呼び出しが完了した後にのみwhileループを実行します。 – filipg