Перейти к содержанию
    

Частичное динамическое обновление веб-страницы

Все получилось, создал простую заготовку, использовал jquery, также получилось график построить.

Может кто-то тоже не будет знать как и с чего начать, выкладываю заготовку.

 

Теперь пробую создать динамическую страницу, то есть чтоб МК сам строил страницу

Fs_05022015.rar

Изменено пользователем vovanxp

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не могу найти решение проблемки.

 

Keil uVision5, в настройках кодировка ANSI

 

Во всех страничках прописано

<meta http-equiv="content-language" lang="ru" />

<meta http-equiv="content-type" content="text/html; charset=windows-1251">

 

 

Если заходить на страничку напрямую http://192.168.5.38/LED.html, то все ОК, а если подтягивать через jQuery('#tabl').load('LED.html');

тогда вместо русских букв симфолы �

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

<meta http-equiv="content-type" content="text/html; charset=windows-1251">

Это надо прописывать в заголовках HTTP:

Content-Type: text/html; charset=windows-1251

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это надо прописывать в заголовках HTTP:

Content-Type: text/html; charset=windows-1251

Так и есть

 

HTTP_Send_String(pcb, hs, "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head>");

HTTP_Send_String(pcb, hs, "<meta http-equiv=\"content-language\" lang=\"ru\" />");

HTTP_Send_String(pcb, hs, "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\">");

HTTP_Send_String(pcb, hs, "</head>");

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так и есть

<meta> - это суррогат, потому он и не работает.

Настоящие заголовки HTTP не являются частью документа HTML.

RTFM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не могу найти решение проблемки....

 

разделите проблему на части. выясните где именно не совпадает кодировка.

обычно такое бывает, если исходный текст написан в кодировке отличной от той, что указана в заголовке страницы.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

разделите проблему на части. выясните где именно не совпадает кодировка.

обычно такое бывает, если исходный текст написан в кодировке отличной от той, что указана в заголовке страницы.

Исходный текст формируется на лету в коде, то есть страница заранее не скомпилирована, это страница /LED.html.

На напрямую страница отображается правильно http://192.168.5.38/LED.html

 

А index.shtml кодится с помощью makefsdata.exe

Изменено пользователем vovanxp

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня тоже бывали проблемы с кодировкой. Перешел на utf-8 все стало нормально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня тоже бывали проблемы с кодировкой. Перешел на utf-8 все стало нормально.

Тогда в keil нужно выставить в настройках utf-8 соответсвено русской язык не будет правильно отображается.

Попробуюю сделать по-другому шапку и подвал брать из файлов а таблицу генерыровать в коде

 

 

P.S. А не тогда придется всю страницу тянуть

Изменено пользователем vovanxp

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда...

 

локаль со стороны сервака на обработчике выставляете или нет?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Давайте я лучше всю инфу напишу.

keil настройках utf-8, подменен UvEdit.dll, иначе русский не отображается.

 

LED.html подтягивается с index.html

 

 

В броузере отображается так на скриншоте

Исходные коды страниц сохранные из броузера

index.htm

LED.html

post-68026-1424200633_thumb.png

post-68026-1424200638_thumb.png

Изменено пользователем vovanxp

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Давайте...

 

Вот тут похоже Ваша проблема обсуждалась

 

траблы jQuery (читать последнии два топика)

 

Если бы всё сделали в рукопашную (там функция на 50 строчек) то проблем бы собственно и не было бы...

А со слоном в стеклянной лавке - вот посуда и полетела...

имхо если с чёрным ящиком не получится = вектор прежний "XMLHttpRequest"

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если бы всё сделали в рукопашную (там функция на 50 строчек) то проблем бы собственно и не было бы...

А со слоном в стеклянной лавке - вот посуда и полетела...

имхо если с чёрным ящиком не получится = вектор прежний "XMLHttpRequest"

+1. Вот до чего доводит вредная привычка всюду тащить "библиотеки" по поводу и без повода.

Голый жабаскрипт и HTML - очень адекватное решение. Любой вопрос по этой теме разжёван в инете 50 раз и гуглится за секунду.

Кстати, у меня 55 строчек :-)

window.onload = refInit;
var timeout;

var refXmlHttp;

function refInit()
{
timeout = 1000 * document.getElementById("refrate").firstChild.nodeValue;
refXmlHttp = new XMLHttpRequest();
refXmlHttp.onreadystatechange = refOnLoad;
if (timeout != 0)
{
	setTimeout("refSendRequest()", timeout);
}
}

function refSendRequest()
{
refXmlHttp.open("GET", "/mondata.xml", true);
refXmlHttp.send(null);
}

function refOnLoad()
{
if (refXmlHttp.readyState == 4) // 4 = "loaded"
{
	if (refXmlHttp.status == 200) // 200 = OK
	{
		refIterateAll();
		if (timeout != 0)
		{
			setTimeout("refSendRequest()", timeout);
		}
	}
}
}

function refIterateAll()
{
var nodes = refXmlHttp.responseXML.documentElement.childNodes;
for (var i = 0; i < nodes.length; i++)
{
	for (var item = nodes.item(i).firstChild; item; item = item.nextSibling)
	{
		if (item.parentNode.nodeName == "values")
		{
			var target = document.getElementById(item.nodeName);
			if (target)
			{
				target.firstChild.nodeValue = item.firstChild.nodeValue;
			}
		}
	}
}
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ОФФ/2:

 

...
function refInit()
{
timeout = 1000 * document.getElementById("refrate").firstChild.nodeValue;
refXmlHttp = new XMLHttpRequest();
refXmlHttp.onreadystatechange = refOnLoad;
if (timeout != 0)
{
	setTimeout("refSendRequest()", timeout);
}
}
...

 

Не совсем универсальное решение. На просторах инета накопал в своё время более универсальную приблуду...

 

function createRequestObject()
{
    try
    {
        return new XMLHttpRequest()
    }
    catch (e)
    {
        try
        {
            return new ActiveXObject('Msxml2.XMLHTTP')
        }
        catch(e)
        {
            try
            {
                return new ActiveXObject('Microsoft.XMLHTTP')
            }
            catch(e)
            {
                return null;
            }
        }
    }
}

 

Сишный стиль - то привычка :) но вызовы которые могут вызвать падёж - лучше в трай-кэтч. И разные активИкс - то под разны броузеры. Это создаётся один объект связи для асинхронного обращения

к серваку. Ну и универсальная функция приёма-передачи. Там собственно всегда одно и то-же, только обработчик для парсинга - разные, передаётся как параметр в обработчик.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не совсем универсальное решение. На просторах инета накопал в своё время более универсальную приблуду...

А я намеренно срезал всю эту хрень. Если у юзверя стоит IE6, то он сам дурак. В нормальных браузерах всё работает, а большего мне и не надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...