【问题标题】:ajax request makes page lagajax 请求导致页面滞后
【发布时间】:2016-06-19 20:53:18
【问题描述】:

我有这个 ajax 请求代码

function hehe2(){
  var a = $(".film2numb").val();
  return $.ajax({
    type : "GET",
    url : "php/controller1.php?page=semuafilm",
    data : "data="+a,
    cache: false,
    success: function(data){
      $('.semuafilm').load('php/film.php');
    },
  });
}

它请求这个 php 代码,基本上它从 SQL 中打印出 HTML 数据

      <?php            
        $indicator = $_SESSION['p'];
        if ($indicator == 'filmbaru') {
          # code...
          $batas = $_SESSION['a'];
          if (!$batas) {
            $batas = 1;
          }
          if ($batas>1) {
            $batas = $batas * 8;
          }
          include('connect.php');
          $queryfilm = "select * from tb_film order by film_year desc, film_id desc limit $batas ,8";
          $exec =  $conn->query($queryfilm);
            while ( $f = $exec->fetch_assoc()) {
         $tn = str_replace(" ","-",$f['film_name']) ;
      ?>
      <div class='col l3 m3 s6 itemovie'><div><img src="images/dum.jpg" class="lazy" data-original='http://www.bolehnonton.com/images/logo/<?php echo $f["film_logo"]; ?>' width="214" height="317"><div><div><div><p><b><?php echo $f['film_name']; ?></b></p><p>IMDB Rating</p><p><?php echo $f['film_genre']; ?></p><p class='center-align linkmov'><a class='dpinblock browntex' href='?page=movie&filmname=<?php echo $tn; ?>'>PLAY MOVIE</a></p><p class='center-align linkmov'><a class='dpinblock' href=''>SEE TRAILER</a></p></div></div></div></div></div>
      <?php
          }
      ?>

这里是控制器

            <?php 
                session_start();
                $a = $_GET['data'];
                $p = $_GET['page'];
                $g = $_GET['genre'];

                $_SESSION['a'] = $a;
                $_SESSION['p'] = $p;
                $_SESSION['g'] = $g;
             ?>

我的问题是为什么每次我单击绑定到hehe2() 函数的按钮(4-5 次,它请求大量图像)时,当我逐步单击时页面变得更重(滞后,滚动缓慢),是有没有办法让它更轻,或者每次点击绑定到hehe2()功能的按钮时,有没有办法不在页面上存储图像缓存或清除?

【问题讨论】:

  • 你怎么绑定嘿嘿?
  • $('.upfilmbaru').click(function(){ var b = parseInt($(".film1numb").val()); var d = b+1; var btspage = $('.batas12').val(); if (d=1) { $(" .film1numb").val(d); hehe();chPg();funcx(); } });我用这个 javascript
  • 是因为我使用了延迟加载吗?

标签: javascript php jquery sql ajax


【解决方案1】:

我不确定我的建议是否有用,我只是分享我的经验。 首先你应该检查你的绑定。你只绑定一次点击触发器吗? 有时函数绑定多次,它会减慢页面速度。 您可以将代码放在函数下面并检查控制台

console.log("Function called");

如果从那时起一切都很好并且函数只触发一次 - 我建议你稍微改变一下流程。是否可以避免连续多次点击?如果没什么大不了的 - 您可以在单击时禁用按钮,在 AJAX 请求完成时显示加载器和启用按钮。这种方法将防止在页面上一次发出多个请求会更快。

【讨论】:

    猜你喜欢
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-24
    • 2015-12-03
    • 2021-07-19
    • 1970-01-01
    相关资源
    最近更新 更多