Как избежать «обновления видео» с помощью ajax в php - PullRequest
0 голосов
/ 28 мая 2019

Я создал базовое приложение для чата с возможностью загрузки текста, изображений и видео в php (codeigniter), используя ajax, и я получаю данные чата каждые 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); 
     } 
 }

Я ожидаю, что видео не будет перезагружено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...