使用 css 隐藏 vs JS 创建元素 vs ajax

Hide with css vs JS create element vs ajax

本文关键字:vs 元素 ajax 创建 JS 隐藏 使用 css      更新时间:2023-09-26

如果照片不存在,我想隐藏一些显示照片标题和有关照片的其他详细信息的div(404),然后在用户单击页面(例如related photos)中的另一张照片时再次显示这些div。 I have used css to hide this divs and then js to show them again. 我考虑过用css隐藏,用JavaScript创建元素,用ajax显示html。有没有更好的方法可以在不使用非语义 HTML 的情况下做到这一点?

<?php 
        if(PHOTO::exists($_GET["photo"])) {
            ?>
        <div id="title_wrap">
            <div id="title"><?php echo $photo->get_title(); ?></div>
        </div>
        <div id="time_views">
            <div id="time"><?php echo $photo->get_time();?></div>
            <div id="views"><?php echo $photo->get_views(); ?></div>          
        </div>
         <?php
        }
?>

因此,如果照片不存在,则不会显示这些div(#title_wrap,#time_views),但是当用户单击相关部分中的照片时,需要使用通过AJAX加载的新信息显示和更新这些div。那么显示和隐藏这些div的最佳方法是什么?

如果使用 ajax 拉入图像,则可以在创建新的图像元素之前测试数据是否可用,然后跳过它。这样,您就不会在页面上加载隐藏元素。添加到页面的每个元素都会占用更多内存。如果您在页面中加载了许多失败的图像标签,并且您只是隐藏了它们,则页面会变大,具体取决于此循环的大小。当您收到响应时,请检查数据,如果您收到 404,请跳过它并转到下一个加载请求,不要将其添加到页面。谷歌机器人也不喜欢404消息。因此,将不良图像标签加载到您的页面中将无效或干净,谷歌将降低您的 SEO 分数。

您应该考虑的另一件事是向服务器发送请求,让服务器响应它拥有的文件列表,以便您只发送服务器上内容的加载请求,而不是猜测。

[更新]

<?php if(file_exists($_GET["photo"])): ?>
     <div id="title_wrap">
         <div id="title"><?php echo $photo->get_title(); ?></div>
     </div>
     <div id="time_views">
         <div id="time"><?php echo $photo->get_time();?></div>
         <div id="views"><?php echo $photo->get_views(); ?></div>          
     </div>
<?php endif; ?>
<div id="relatedImages>this is outside the if statement and will be displayed even if the if statement is false</div>

如果 file_exists() 返回 false,则不会显示任何内容。 因此,您不必使用CSS隐藏它,因为它不会出现在页面上。如果没有要显示的数据,则显示div 是没有意义的。解决方案不是 css 或 JavaScript,如果文件不存在,您不应该显示内容。

此外,代码的这一部分也不是您的问题。问题是您为用户提供了选择不存在的图像的选项。如果您只为用户提供选择您拥有文件的图像的选项,则 file_exists() 每次都会返回 true,您将永远不需要处理 404 错误。

根据您的问题以及您如何理解PHP,我强烈建议您购买一本有关PHP的书。您应该刷新运算符和 if 语句。查看if语句部分后,请查看内联 php 语句的格式。这将使您在Web编程方面走上非常成功的职业生涯。 (这本书的链接是我在搜索亚马逊时找到的第一个)这将是一个良好的开端。另请查看他们 http://www.w3schools.com/php/有一些初学者教程可以帮助您。并记住KISS(保持愚蠢的简单)。

http://www.amazon.com/PHP-Absolute-Beginners-Jason-Lengstorf/dp/1430268158/ref=sr_1_1?s=books&ie=UTF8&qid=1422575607&sr=1-1&keywords=php+absolute+beginner&pebp=1422575612138&peasin=1430268158