0

我正在一个网站上工作,在该网站上,用户(登录后)被发送到该网站的主页(home.php)。在这个主页上有 4 个独立的 iframe,每个都在一个单独的 div 中,每个都由不同的 php 文件(不是 home.php)填充。该站点尚未完成,但我正在尝试构建站点时考虑到带宽最小化。在其中一个容器中是一个 iframe,它由 users.php 填充,如下所示:

<div id="SomeDiv">
<iframe name="frame3" width="1050" height="175" src="users.php" frameborder="0" ></iframe>
</div>

我目前所做的是在 users.php 本身中放置一个状态设置按钮,当按下它时会改变用户的“状态”......效果很好。按下按钮后,位置重新设置为users.php,如下:

if  (($_POST['hidden']) == 'On') {

        $login_id=mysql_real_escape_string($_SESSION['login_id']);

        $Update1=mysql_query("UPDATE login SET Status = 'On' WHERE   
login_id = '$login_id'");               
$message = 'You have set your status to: ON';               
echo "<SCRIPT>
alert ('$message');
location='users.php';
</SCRIPT>"; 

}

else if  (($_POST['hidden']) == 'Off') {

        $login_id=mysql_real_escape_string($_SESSION['login_id']);

        $Update2=mysql_query("UPDATE login SET status = 'off' WHERE    
login_id = '$login_id'");               
$message1 = 'You have set your status to: OFF';                 
echo "<SCRIPT>
alert ('$message1');
location='users.php';
</SCRIPT>"; 
}

我故意以这种方式编码,而不是将按钮放在“home.php”中并在单击按钮后设置 location='home.php';我的理由是这是一种节省带宽的快速简便的方法(即,只有通过设置 location = 'users.php' 重新加载 iframe,而不是通过设置 location = 'home.php' 来重新加载整个页面) 'home.php' 代码中的按钮)。作为一个初学者,这似乎是一个很好的减少带宽的策略,而且它比整个页面重新加载(大约 1.5 秒)快得多(大约半秒)。作为初学者,我不知道这种方法有什么潜在的陷阱吗?

4

1 回答 1

0

像@Dagoniframes所说的那样,用来优化任何东西都会适得其反。在完全刷新时重新渲染窗口比通过加载内容需要更长的时间AJAX

你真正想做的是有这样的标记:

<div id="container">
  <button id="updatePane" value="Update" />

  <div id="changeMe">
    Some content on load
  </div>
</div>

您需要不同的元素changeMe来替换每个 iframe。

然后,您可以使用jQuery 之AJAX类的库将内容加载到和其他s 中。这样您就可以访问您的服务器,尽可能少地获取信息,而无需实际刷新窗口。changeMeDIV

编辑

而且,由于我看到您正在使用PHP,您实际上可以执行以下操作:

<div id="container">
  <button id="updatePane" value="Update" />

  <div id="users">
     <?php include("users.php"); ?>
  </div>
</div>
于 2013-09-20T03:24:26.937 回答