Технический сбой

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

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


     Ajax    Модули, MySQL    7105

вопрос
Как сделать, что бы сайт проверял раз в 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 - -

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

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

nik1004
Юзер

nik1004 - -


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

TheImDim
Юзер

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

nik1004
Юзер

nik1004 - -

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

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

ПафНутиЙ - -

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

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

TheImDim
Юзер

TheImDim - -

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

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

nik1004
Юзер

nik1004 - -

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

G-Force
Юзер

G-Force - -


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

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

nik1004
Юзер

nik1004 - -

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

G-Force
Юзер

G-Force - -

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

nik1004
Юзер

nik1004 - -

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

G-Force
Юзер

G-Force - -

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

TheImDim
Юзер

TheImDim - -

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

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

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

G-Force
Юзер

G-Force - -

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

nik1004
Юзер

nik1004 - -

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 - -

не работает

<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 - -

<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 - -

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

TheImDim
Юзер

TheImDim - -

можно

G-Force
Юзер

G-Force - -

как ?

TheImDim
Юзер

TheImDim - -

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

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

BR0kEN
Эксперт

BR0kEN - -

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

nik1004
Юзер

nik1004 - -

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

nik1004
Юзер

nik1004 - -

точнее запихнуть этот скрипт в 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 - -

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

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

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

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