首页 > 解决方案 > 如何在 php 中使用 ajax 避免“视频刷新”

问题描述

我使用 ajax 在 php(codeigniter) 中创建了一个带有文本、图像和视频上传选项的基本聊天应用程序,并且我每 2 秒通过 ajax 以 json 格式获取聊天数据。

问题仅在于视频“当我点击播放视频时,它只会播放 2 秒,2 秒后视频也会重新加载(刷新)”。但我不想重新加载视频。

这个问题我将通过删除下面的代码来解决

setInterval(function(){get_chat_data()}, 2000)

但我不想删除此代码。所以这是我的脚本和php代码

function get_chat_data(refresh)
  { 
    jQuery.ajax({ 
      data:{ get_data: 1, chat_id: $("#chat_id").val()},
      type: 'POST',
      dataType: 'JSON',
      url: '<?php echo base_url(); ?>mychat_session/get_chat_data', 
      success:function(data){
        $("#mgs_dynamic_block").html(data);  
        }, 
      });  
 }
 setInterval(function(){get_chat_data()}, 2000)

这是我的 php 代码的一部分

$get_chat_data = $this->Chat_modelM->get_chat_data();
 foreach ($get_chat_data as $chat_data) 
 {
     $message = $chat_data['chat_message']; 
     $type = $chat_data['type'];
     if($type=='video'){
     $message = base_url('uploads/chat_uploads/').$message;
     $json_all_data[] ='<video controls><source src="'.$message.'" type="video/mp4"> 
                        </video> <hr> ';
     }elseif($type=='image'){
       $message = base_url('uploads/chat_uploads/').$message;
       $json_all_data[] ='<a href="'.$message.'" target="_blank" style="display: block;">Open File</a> <hr> ';
     }else{
       $json_all_data[] ='<p class="mgs_message">'.$message.'</p><hr> '; 
     }

     if(empty($json_all_data)) {
        echo json_encode('<p class="no_mgs">No messages to display.</p>'); 
     }else{
       echo json_encode($json_all_data); 
     } 
 }

我希望视频不会重新加载。

标签: phpjqueryjsonajaxhtml5-video

解决方案


推荐阅读