Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 隐藏css vs JS创建元素vs ajax_Javascript_Jquery_Html_Css_Ajax - Fatal编程技术网

Javascript 隐藏css vs JS创建元素vs ajax

Javascript 隐藏css vs JS创建元素vs ajax,javascript,jquery,html,css,ajax,Javascript,Jquery,Html,Css,Ajax,如果一张照片不存在,我想隐藏一些显示照片标题和其他照片详细信息的div(404),然后当用户单击页面ex.中的另一张照片时,再次显示这些div。在相关照片部分我用css隐藏这个div,然后用js再次显示它们。我考虑过用css隐藏,用JavaScript创建元素,用ajax显示html。在不使用非语义HTML的情况下,有没有更好的方法来实现这一点 <?php if(PHOTO::exists($_GET["photo"])) { ?>

如果一张照片不存在,我想隐藏一些显示照片标题和其他照片详细信息的div(404),然后当用户单击页面ex.中的另一张照片时,再次显示这些div。在
相关照片
部分
我用css隐藏这个div,然后用js再次显示它们。
我考虑过用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)将不会显示,但当用户单击相关部分中的照片时,这些div需要显示并使用通过AJAX加载的新信息进行更新。那么,显示和隐藏这些div的最佳方式是什么呢?

如果您使用ajax拉入图像,那么您可以在创建新的图像元素之前测试数据是否可用,然后直接跳过它。这样,您就不会在页面中加载隐藏的元素。添加到页面中的每个元素都会占用更多内存。如果你在页面中加载了许多失败的图像标签,而你只是简单地隐藏了它们,那么页面将变得越来越大,这取决于这个循环的大小。当您收到回复时,请检查数据,如果收到404,请跳过它,转到下一个加载请求,不要将其添加到页面。谷歌机器人也不喜欢404信息。因此,将坏图像标签加载到您的页面将无效或不干净,谷歌将降低您的搜索引擎优化分数

你应该考虑的是向服务器发送一个请求,让服务器响应它所拥有的文件的列表,以便只对服务器上的信息进行发送请求,而不是猜测。p> [更新]

<?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>


如果您使用ajax拉入图像,您可以在创建新图像元素之前测试数据是否可用,只需跳过它即可。这样,您就不会在页面中加载隐藏的元素。添加到页面中的每个元素都会占用更多内存。如果你在页面中加载了许多失败的图像标签,而你只是简单地隐藏了它们,那么页面将变得越来越大,这取决于这个循环的大小。当您收到回复时,请检查数据,如果收到404,请跳过它,转到下一个加载请求,不要将其添加到页面。谷歌机器人也不喜欢404信息。因此,将坏图像标签加载到您的页面将无效或不干净,谷歌将降低您的搜索引擎优化分数

你应该考虑的是向服务器发送一个请求,让服务器响应它所拥有的文件的列表,以便只对服务器上的信息进行发送请求,而不是猜测。p> [更新]

<?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>


如果您使用ajax拉入图像,您可以在创建新图像元素之前测试数据是否可用,只需跳过它即可。这样,您就不会在页面中加载隐藏的元素。添加到页面中的每个元素都会占用更多内存。如果你在页面中加载了许多失败的图像标签,而你只是简单地隐藏了它们,那么页面将变得越来越大,这取决于这个循环的大小。当您收到回复时,请检查数据,如果收到404,请跳过它,转到下一个加载请求,不要将其添加到页面。谷歌机器人也不喜欢404信息。因此,将坏图像标签加载到您的页面将无效或不干净,谷歌将降低您的搜索引擎优化分数

你应该考虑的是向服务器发送一个请求,让服务器响应它所拥有的文件的列表,以便只对服务器上的信息进行发送请求,而不是猜测。p> [更新]

<?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>


如果您使用ajax拉入图像,您可以在创建新图像元素之前测试数据是否可用,只需跳过它即可。这样,您就不会在页面中加载隐藏的元素。添加到页面中的每个元素都会占用更多内存。如果你在页面中加载了许多失败的图像标签,而你只是简单地隐藏了它们,那么页面将变得越来越大,这取决于这个循环的大小。当您收到回复时,请检查数据,如果收到404,请跳过它,转到下一个加载请求,不要将其添加到页面。谷歌机器人也不喜欢404信息。因此,将坏图像标签加载到您的页面将无效或不干净,谷歌将降低您的搜索引擎优化分数

你应该考虑的是向服务器发送一个请求,让服务器响应它所拥有的文件的列表,以便只对服务器上的信息进行发送请求,而不是猜测。p> [更新]

<?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>


我想你还没有完全理解我。它是页面中的一个主图像,其中一些div用于标题和有关此图像的其他数据,它是一个相关图像部分。如果此图像不存在,则不会显示此照片和其他有关照片的div。但是,如果用户在相关部分中单击照片,则应显示这些div,并使用新照片的信息进行更新@PatricIs页面加载或ajax加载的图像?如果图像存在,则将从服务器端加载。如果它不存在,并且用户单击相关部分中的图像,则将通过AJAX加载它。但我更关心这些显示照片标题、时间等的div,我应该用css隐藏它们吗?用js创建还是用其他最好的方法?因为我需要它们再次显示通过Ajaxi加载的新图像和图像细节。如果图像不存在,那么您不应该让服务器端渲染选项开始。听起来更像是应该更改在服务器端加载图像的方式。在任何时候,你都不应该在一个站点上处理大量的404图像加载。如果你得到一堆404,你就有逻辑上的问题