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>

我真的不确定从哪里开始。我应该避免一起使用 PHPdemo.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>

(比起矢车菊蓝,我更喜欢 MidnightBlue...)

demo.php

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

3 回答 3

1

从技术上讲,使用 PHP 生成的文本与在 ASP.net 中生成的文本与包含在 .txt 文件中的文本与在键盘上键入的文本之间绝对没有区别——都是字母和数字。事实上,我想说的是,在没有其他线索的情况下检查文本,完全和 100% 不可能说出它是如何创建的。不,您不应该避免使用 AJAX 的 PHP。

您看到的任何“抖动”都是其他问题的产物,很可能与浏览器性能有关——处理器可用性、可用内存、当前进程内存消耗、扩展活动/对页面内容的干扰等。

于 2013-02-19T21:53:08.123 回答
1

我不知道这是否会帮助你。如果上面显示的代码是您的全部代码,则可能不会really

但是:前段时间,当我通过 Ajax 加载内容时,我也遇到了动画抖动问题。原因是:加载的内容包含带有其他动画命令的 Javascript 代码,然后两个动画都受到干扰。也许这里也是如此。

于 2013-02-19T22:01:05.037 回答
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 回答