0

jQuery によって非同期的に読み込まれるファイル内で PHP を生成すると、アニメーションの実行中にテキストが少し揺れたりちらついたりするように見えます。これは、要求されたファイルの通常の HTML では発生せず、PHP で生成されたコンテンツでのみ発生します。

何がジッターを終わらせるかについてのヒントが欲しいだけです。

のjQueryは次のmain.phpとおりです。

$(document).ready(function(){
    var demo = $('#demo');
    demo.hide();
    $("button").click(function(){
        demo.load('demo.php', function() {
        demo.show('medium');
        });
    });
});

の HTML と PHP は次のdemo.phpとおりです。

<p><?php echo "Hello World with PHP trough AJAX"; ?></p>

どこから始めればよいか本当にわかりません。PHP をまったく使用しないようにする必要がありdemo.phpますか? それでも、AJAX と呼ばれるスクリプトで PHP を使用できるようにしたいと考えています。

リクエストに応じて、ここにすべてがあります:

main.php:

<!DOCTYPE html>
<html>
<head>
    <title>Testing Ajax</title>
    <link rel="stylesheet" type="text/css" href="main.css" />
    <meta charset="utf-8" />
    <script type="text/javascript" src="js/jquery-1.9.0.js"></script>
    <script>
        $(document).ready(function(){
            var demo = $('#demo');
            demo.hide();
            $("button").click(function(){
                demo.load('demo.php', function() {
                    demo.show('medium');
                });
            });
        });
    </script>
    <style type="text/css">
        #demo {background-color: MidnightBlue;color: white;padding: 0.1em 1em 1.5em 1.5em;}
        #demo h1 {color: white;}
    </style>
</head>
<body>
    <section>
        <article>
            <h1>Ajax</h1>
            <hr />
            <button>Load External Content</button>
            <div id="demo"></div>
        </article>
    </section>
</body>
</html>

(コーンフラワーブルーよりミッドナイトブルーの方が好きです…)

demo.php:

<h1>Ajax criex Hello World!</h1>
<p><?php echo "PHP also cries Hello World trough Ajax!"; ?></p>
4

3 に答える 3

1

これが役立つかどうかはわかりません。上記のコードがreallyすべてのコードである場合、おそらくそうではありません。

しかし、以前、Ajax 経由でコンテンツを読み込んだときに、アニメーションにジッタリングの問題がありました。その理由は、ロードされたコンテンツに他のアニメーション コマンドを含む Javascript コードが含まれていたため、両方のアニメーションが干渉したためです。ひょっとしたらここもそうなのかもしれません。

于 2013-02-19T22:01:05.037 に答える
1

技術的に言えば、PHP で生成されたテキスト、ASP.net で生成されたテキスト、.txt ファイルに含まれるテキスト、キーボードでの入力によって生成されたテキストの間にまったく違いはありません。すべて文字と数字です。確かに、他の手がかりがないテキストを調べると、それがどのように作成されたかを知ることは完全かつ100%不可能であると言えます. いいえ、AJAX を使用する PHP を避けるべきではありません。

表示される「ジッタリング」は、他の問題の結果であり、ブラウザのパフォーマンスに関連している可能性が最も高いです - プロセッサの可用性、空きメモリ、現在のプロセスのメモリ消費、拡張機能のアクティビティ/ページ コンテンツへの干渉など。

于 2013-02-19T21:53:08.123 に答える
1

私のテストでは、「ジッター」を再現しようとしているときに、コードが無限の ajax ループを生成しています(Web コンソールで表示してください)。これは、おそらくジッター効果です。

以下は基本的な PHP と AJAX の例です。

<?php 
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest' && $_SERVER['REQUEST_METHOD']=='POST' && isset($_POST['action'])){
    $action = $_POST['action'];
    switch($action){
        case "hello":
            echo "Hello World with PHP through AJAX";
            break;
        case "foobar":
            echo "Hello Foobar";
            break;
    }
    die;
}
?>

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$(document).ready(function(){
    $("button").click(function(){
           var action = this.value;
           ajaxload('demo',action);
    });
});
function ajaxload(placement,action){
    $.post("./demo.php", { 'action': action },
    function(data) {
        $("#"+placement).hide().html(data).fadeIn('slow');
    });
}
</script>


<button type="button" value="hello">Hello World</button>
<button type="button" value="foobar">Foobar</button>


<p id="demo"></p>
于 2013-02-19T22:11:42.390 に答える