Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Модули » Как подгружать новости на лету?

Как подгружать новости на лету?


     08.12.2012    Ajax    Модули, MySQL    7029

вопрос
Как сделать, что бы сайт проверял раз в 60 секунд наличие новых новостей в базе, и если такие есть, подгружал их?

Ответил: TheImDim


function LoadContent() {
        patch = window.location.toString();
        if (patch !== undefined) {
        $.ajax({
        url: patch,
        success: function(content) {
    $('#dle-content').html($('#dle-content', content).html());
    }})}
    
    setTimeout("LoadContent()", 10000);
    }


в .htaccess в самое начало прописать следующее:

AddDefaultCharset windows-1251
Отредактировал 9-12-2012, 00:26 - ПафНутиЙ
Причина: поправил ответ

25 комментариев

TheImDim
Юзер

TheImDim - 8 декабря 2012 23:45 -

в main.tpl заменить

<body>
на <body onload="LoadContent()">

nik1004
Юзер

nik1004 - 8 декабря 2012 23:53 -


все подгружает, но возникла проблема сам сайт на cp-1251, при загрузке все хорошо отображает, но вот потом когда происходит onload="LoadContent()", все посты меняют кодировку и все становится так:
, 22:48: 123

TheImDim
Юзер

TheImDim - 9 декабря 2012 00:05 -

Извиняюсь, немного поторопился с кодом, вот полностью рабочий вариант:

function LoadContent() {
        patch = window.location.toString();
        if (patch !== undefined) {
        $.ajax({
        url: patch,
        success: function(content) {
    $('#dle-content').html($('#dle-content', content).html());
    }})}
    
    setTimeout("LoadContent()", 10000);
    }


в .htaccess в самое начало прописать следущее:

AddDefaultCharset windows-1251

nik1004
Юзер

nik1004 - 9 декабря 2012 00:07 -

Теперь все просто отлично, спасибо Вам огромное за помощь!

ПафНутиЙ
Админ

ПафНутиЙ - 9 декабря 2012 00:26 -

поправил ответ.

Каков вопрос - таков и ответ. Просто помните об этом.

TheImDim
Юзер

TheImDim - 9 декабря 2012 00:49 -

Спасибо. Забыл добавить.

setTimeout("LoadContent()", 10000);
- где 10000 задержка в милисекундах (например 60 000 - это 60 секунд)

nik1004
Юзер

nik1004 - 9 декабря 2012 00:51 -

ну это я знаю) не настолько нуП)

G-Force
Юзер

G-Force - 9 декабря 2012 01:09 -


я нашел один сбой при добавлении новости с этим кодом (когда ты добавил новоть сразу еще можешь добавить хотя раньше надо было нажать Добавить еще или Вернуться назад (как на фото))

https://dle-faq.ru/uploads/comments/1880/temp.jpg

nik1004
Юзер

nik1004 - 9 декабря 2012 01:12 -

для меня это не баг, так как провожу трансляции, и чем быстрее увижу панель добавления новости, тем лучше)

G-Force
Юзер

G-Force - 9 декабря 2012 01:13 -

и еще стал слетать другой код

nik1004
Юзер

nik1004 - 9 декабря 2012 01:14 -

какой именно?

G-Force
Юзер

G-Force - 9 декабря 2012 01:17 -

я проверил почти весь код при обновление кода слетает

TheImDim
Юзер

TheImDim - 9 декабря 2012 01:35 -

Замените
if (patch !== undefined) {

на
if (patch!== undefined && patch=="http://website.ru/" || patch=="http://website.ru/index.php") {{

чтобы обновлялась только главная страница (вместо http://website.ru/ - ваш сайт)

G-Force
Юзер

G-Force - 9 декабря 2012 12:10 -

это куда писать ?

nik1004
Юзер

nik1004 - 9 декабря 2012 13:13 -

function LoadContent() {
patch = window.location.toString();
if (patch!== undefined && patch=="http://website.ru/" || patch=="http://website.ru/index.php") {{
$.ajax({
url: patch,
success: function(content) {
$('#dle-content').html($('#dle-content', content).html());
}})}

setTimeout("LoadContent()", 10000);
}

G-Force
Юзер

G-Force - 9 декабря 2012 13:25 -

не работает

<script type="text/javascript">function LoadContent() { patch = window.location.toString(); if (patch!== undefined && patch=="http://duchesne.ru/" || patch=="http://duchesne.ru/index.php") {{ $.ajax({ url: patch, success: function(content) { $('#dle-content').html($('#dle-content', content).html()); }})} setTimeout("LoadContent()", 10000); }</script>


и

в main.tpl заменить

<body>
на <body onload="LoadContent()">

nik1004
Юзер

nik1004 - 9 декабря 2012 13:30 -

<script type="text/javascript">
function LoadContent() {
patch = window.location.toString();
if (patch!== undefined && patch=="http://сайт.ru/" || patch=="http://сайт.ru/index.php") {
$.ajax({
url: patch,
success: function(content) {
$('#dle-content').html($('#dle-content', content).html());
}})}

setTimeout("LoadContent()", 10000);
}

</script>

все работает, проблема в одной скобочке там у тебя

G-Force
Юзер

G-Force - 9 декабря 2012 18:06 -

можно как то сделать чтобы погружалось только Вводная часть (если идет погрузка главной страницы то выходит из строя поисковик)

TheImDim
Юзер

TheImDim - 9 декабря 2012 18:34 -

можно

G-Force
Юзер

G-Force - 9 декабря 2012 18:46 -

как ?

TheImDim
Юзер

TheImDim - 9 декабря 2012 19:55 -

сделай так и не парься

<body [aviable=main]onload="LoadContent()"[/aviable]>

BR0kEN
Эксперт

BR0kEN - 3 января 2013 16:28 -

Если подключен jQuery, то $(document).ready() намного лучше onload.

nik1004
Юзер

nik1004 - 24 мая 2013 15:22 -

А как подключить jquery?

nik1004
Юзер

nik1004 - 24 мая 2013 15:24 -

точнее запихнуть этот скрипт в jquery

такой код

 <script type="text/javascript">
$(document).ready(function (LoadContent()) {
        patch = window.location.toString();
       if (patch!== undefined && patch=="http://i-sc.ru/" || patch=="http://i-sc.ru/index.php") {
        $.ajax({
        url: patch,
        success: function(content) {
    $('#dle-content').html($('#dle-content', content).html());
    }})}
    
    setTimeout("LoadContent()", 50);
    });
    
    </script>


не работает

SeregaWilliams
Юзер

SeregaWilliams - 13 февраля 2014 07:13 -

Есть ли возможность не перезагружать уже загруженные статьи, а подгружать только новые? как вконтакте

Неудобство в том, что в shorthstory невозможно смотреть видео и спойлеры сворачиваются в изначальное состояние

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 08.03.2014 amoseo  Модули
наверх