Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/22: Рейтинг темы: голосов - 22, средняя оценка - 4.55
25 / 25 / 9
Регистрация: 18.09.2011
Сообщений: 130
1

Странное поведение firefox при AJAX запросе

10.05.2014, 22:38. Показов 4233. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть код(с маленькой примесью PHP, на понимание не влияет):
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
window.onload = function(){
    var c_id = '<?=$type?>';
    var s_id = <?=$articles[count($articles)-1]["ID"]?>-1;
    var $d = document;
    $($d).scroll(function(){
      if(($($d).height()-$(window).height()) - $($d).scrollTop() <= 240){
        $.ajax({
          type: "POST",
          url: '/ajax/get_category_articles/'+c_id+'/'+s_id,
          async:false,
          success: function(d){
            if(d!='END'){
              var ars = JSON.parse(d);
              for (var i = 0; i <= ars.length - 1; i++) {
                var b = '<div class="block helvetica-light category'+ars[i]['category_id']+'"><a href="#"><div class="post-img"><div class="green-background"><div class="read_more_text"><i class="fa fa-long-arrow-right"></i> <span>Читать</span></div></div><img src="'+ars[i]['preview_img']+'" alt="The image will be here" class="js-post-img"></div></a><div class="arrow-up"></div><div class="info"><div class="description"><h3>'+ars[i]['title']+'</h3><p>'+ars[i]['preview_text']+'</p></div></div></div>';
                var min = 0;
                var min_name = '';
                if($('#first-col').height() < $('#second-col').height()){
                  min = $('#first-col').height();
                  min_name = 'first';
                }
                else{
                  min = $('#second-col').height();
                  min_name = 'second';
                }
                if($('#third-col').height() < min) min_name = 'third';
                $('#'+min_name+'-col').append(b);
                console.log('Articles ID: '+ars[i]['ID']);
              }
              s_id = ars[ars.length - 1]['ID'] -1;
            }
            else $($d).unbind('scroll');
          }
        });
      }
    });
  }
Он делает подгрузку 5 статей и вставляет их на страницу в самый короткий столбец. Всё работает прекрасно даже в IE, но Firefox вставляет очень много копий одних и тех же статей. Я думаю, что это связано с каким-то другим механизмом обработки JS Firefox'ом. Вопрос: можно это как-то вылечить?
Заранее благодарен за ответы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2014, 22:38
Ответы с готовыми решениями:

Странное поведение - ajax + php + html/css
Здравствуйте! В целом я новичек в web-программировании. Опыт буквально несколько месяцев. Делаю...

Странное поведение при делегировании
Доброй ночи, Господа. Пишу некую доп. функциональность к календарю, но дело, собственно, не в...

Странное поведение переменной при подключении скрипта.
Привет. Есть файл скрипта: test.js var cool = {id:5}; Теперь самое интересное! Подключаем этот...

Ошибка при запросе Ajax
Есть форма: &lt;form method='POST' id='forms' action='javascript:void(null);' onsubmit='call()'&gt;...

2
0 / 0 / 2
Регистрация: 09.10.2013
Сообщений: 58
31.07.2014, 13:40 2
у меня похожая ситуация. Сделал ajax запрос. Во всех браузерах "async: false" работает - но в Firefox не работает

Добавлено через 32 минуты
Вот мой запрос, который работает во всех браузерах, кроме Firefox
Javascript
1
2
3
4
5
6
7
8
9
10
$.ajax({
            type : "POST",
            data: { "fieldName" : $(this).attr("id"), "postId" : $('#postId').text(), "fieldDescr" : $(this).attr("rel") },
            url: "/wp-content/themes/irtech/ajax_obrabotchik.php",
            cache: true,  
            async: false,
            success: function(html){
                $('#ajaxRes').html(html);
            }
        })
подскажите, кто чем сможет

Добавлено через 1 час 0 минут
Усё, проблема решена. Всё оказалось проще чем думал.
тупо это заменил

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
$('#title').text('');
$('#title').append(title);
$.ajax({
            type : "POST",
            data: { "fieldName" : $(this).attr("id"), "postId" : $('#postId').text() },
            url: "/wp-content/themes/irtech/ajax_obrabotchik.php",
            cache: true,
            async: false,
            success: function(html){
                $('#ajaxRes').html(html);
            }
        })
на это

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
$.ajax({
            type : "POST",
            data: { "fieldName" : $(this).attr("id"), "postId" : $('#postId').text() },
            url: "/wp-content/themes/irtech/ajax_obrabotchik.php",
            cache: true,
            async: false,
            success: function(html){
                $('#ajaxRes').html(html);
            }
        })
$('#title').text('');
$('#title').append(title);
то есть как видите, ни одной буквы не поменял, только поменял местами
0
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
01.08.2014, 10:02 3
troayn32, Попробуйте добавить очистку поля перед аяксом.

LLEEVV2020, все логично, вы обращались к элементу, которого еще нет в DOM.
0
01.08.2014, 10:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.08.2014, 10:02
Помогаю со студенческими работами здесь

404 (Not Found) при ajax запросе
Добрый день! Не могу понять по какой причине некорректно отрабатывает ajax запрос. По клику по...

Не отрабатывает succes при ajax запросе
Добрый вечер. Подскажите почему может не работать выполнение функции после succes:...

Изменение url при ajax запросе
Добрый день, подскажите конструкцию работы того же mail.ru или gmail.com, когда нажимаешь на...

Выдает ошибку при ajax запросе
&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js&quot;&gt;&lt;/script&gt; $.ajax({...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru