|
|
|
|
|
для: Евгений Петров
(24.08.2009 в 15:48)
| | телевизор ;) | |
|
|
|
|
|
|
|
для: Lelik
(24.08.2009 в 15:43)
| | Я пример попросил одновременно с тем как вы заставили его работать. Ещё что то не работает? | |
|
|
|
|
|
|
|
для: Евгений Петров
(24.08.2009 в 15:37)
| | index.php
<?php
header("Content-Type: text/html;charset=utf-8");
?>
<html>
<head>
<script type="text/javascript" src="common.js"></script>
<script type="text/javascript" src="ajax.js"></script>
<script>
function Function1() {
new _AJAX('ajax.php?req_1=1', 'get', Function1_, false);
}
function Function1_(oData) {
me('block_1').innerHTML = oData.responseText;
}
function Function2() {
new _AJAX('ajax.php?req_2=1', 'get', Function2_, false);
}
function Function2_(oData) {
me('block_2').innerHTML = oData.responseText;
}
</script>
</head>
<body>
<span onclick="Function1()">Вызвать функцию Function1();</span>
<div id="block_1">0</div>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<span onclick="Function2()">Вызвать функцию Function2();</span>
<div id="block_2">0</div>
</body>
</html>
|
ajax.php
<?php
if( isset($_REQUEST['req_1']) && $_REQUEST['req_1'] != '' ) {
for($i=0; $i<99999999; $i++) {
$j=0;
}
print '1) '.rand(1,500);
}
if( isset($_REQUEST['req_2']) && $_REQUEST['req_2'] != '' ) {
for($i=0; $i<100; $i++) {
$j=0;
}
print '2) '.rand(1,500);
}
?>
|
ajax.js. тут есть одно "но": _MC.isIe() - надо заментить на проверку ИЕ это или нет.
/* © Ильюша Абельчаков. http://www.ilyuha.ru/ */
_AJAX = function( sUrl, sMethod, sFunction, sParams ) {
/*
sUrl - url на который посылается запрос
sMethod - метод get или post
sFunction - функция-обработчик выполняемая в слычае ответа 200 сервера
sParams - параметры, необходимо для post запросов
*/
/* Посылка запроса на сервер */
sMethod = (typeof sMethod == 'undefined') ? 'GET' : sMethod;
sFunction = (typeof sFunction == 'undefined') ? false : sFunction;
sParams = (typeof sParams == 'undefined') ? ( ( _MC.isIe() ) ? '' : null ) : sParams;
var _this = this;
this.oLoad = XMLHttpRequest() ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
if (this.oLoad) {
this.oLoad.open(sMethod, sUrl, true);
if (sMethod.toLowerCase() == 'post') {
this.oLoad.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
this.oLoad.setRequestHeader("Content-length", sParams.length);
this.oLoad.setRequestHeader("Connection", "close");
}
this.oLoad.setRequestHeader("X-Requested-With", "XMLHttpRequest");
if (sFunction) {
this.AnswerFunc = sFunction;
this.ReqTimer = null;
this.oReqState = function() {
/* Получаем состояние готовности сервера выдать ответ */
if(_this.ReqTimer != null) {
clearTimeout(_this.ReqTimer);
}
if(_this.oLoad.readyState == 4) {
if (_this.oLoad.status == 200) {
_this.AnswerFunc(_this.oLoad);
}
clearTimeout(_this.ReqTimer);
_this.ReqTimer = null;
}
else {
_this.ReqTimer = setTimeout(_this.oReqState, 10);
}
}
this.oReqState();
}
this.oLoad.send( unescape(sParams) );
}
else
return false;
}
|
| |
|
|
|
|
|
|
|
для: Lelik
(24.08.2009 в 15:32)
| | Дайте рабочий пример чтобы можно было запустить. | |
|
|
|
|
|
|
|
для: Lelik
(24.08.2009 в 15:32)
| | заработало :) исправил приведённую мной функцию в одном месте:
| |
|
|
|
|
|
|
|
для: Евгений Петров
(24.08.2009 в 13:40)
| | в общем, убрал всё глобальное, и всё равно работает не так как мне надо
_AJAX = function( sUrl, sMethod, sFunction, sParams ) {
/*
sUrl - url на который посылается запрос
sMethod - метод get или post
sFunction - функция-обработчик выполняемая в слычае ответа 200 сервера
sParams - параметры, необходимо для post запросов
*/
/* Посылка запроса на сервер */
sMethod = (typeof sMethod == 'undefined') ? 'GET' : sMethod;
sFunction = (typeof sFunction == 'undefined') ? false : sFunction;
sParams = (typeof sParams == 'undefined') ? ( ( _MC.isIe() ) ? '' : null ) : sParams;
_this = this;
this.oLoad = XMLHttpRequest() ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
if (this.oLoad) {
this.oLoad.open(sMethod, sUrl, true);
if (sMethod.toLowerCase() == 'post') {
this.oLoad.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
this.oLoad.setRequestHeader("Content-length", sParams.length);
this.oLoad.setRequestHeader("Connection", "close");
}
this.oLoad.setRequestHeader("X-Requested-With", "XMLHttpRequest");
if (sFunction) {
this.AnswerFunc = sFunction;
this.ReqTimer = null
this.oReqState = function() {
/* Получаем состояние готовности сервера выдать ответ */
if(_this.ReqTimer != null) {
clearTimeout(_this.ReqTimer);
}
if(_this.oLoad.readyState == 4) {
if (_this.oLoad.status == 200) {
_this.AnswerFunc(_this.oLoad);
}
clearTimeout(_this.ReqTimer);
_this.ReqTimer = null;
}
else {
_this.ReqTimer = setTimeout(_this.oReqState, 10);
}
}
this.oReqState();
}
this.oLoad.send( unescape(sParams) );
}
else
return false;
}
|
ЗЫ. посылаю запросы теперь так:
new _AJAX('ajax.php?req_1=1', 'get', Function1_, false);
|
| |
|
|
|
|
|
|
|
для: Lelik
(24.08.2009 в 14:45)
| | Ну вот опять. Если я говорю что человек говорит чушь то я цитирую его и привожу доводы почему он говорит чушь. Вы же в качестве доводов пишете только смайлики. Я по всей видимости ещё не настолько крут чтобы понимать вас с полуслова.
За все что я написал я могу ответить. А вы можете? | |
|
|
|
|
|
|
|
для: Евгений Петров
(24.08.2009 в 14:33)
| | ну потому что ты не ознакомившись подробно с вопросом вещаешь полную чушь. а потом просишь переубедить. :) | |
|
|
|
|
|
|
|
для: Trianon
(24.08.2009 в 14:24)
| | А зачем писать мне что я говорю чушь? | |
|
|
|
|
|
|
|
для: Евгений Петров
(24.08.2009 в 13:42)
| | зачем? | |
|
|
|
|