{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
51. (30 июл 2014, 14:05) [0/0] [0] [отв] [спам] [под] +1 | -1

ebalazhabagadyuku, всё равно остались недочеты.
ЗЫ - всегда ставь фигурные скобки там, где они должны быть. Есть понятие как дизайн кода, который улучшает читабельность. Лучше соблюдать эти стандарты, если хочешь развиваться и возможно в будущем работать в команде.

52. [автор] (30 июл 2014, 14:07) [0/0] [0] [отв] [спам] [под] +1 | -1
ex0rc1st,

это называется табуляция кода, я знаю)) тут пробелы не показывают))

53. (30 июл 2014, 18:10) [0/0] [0] [отв] [спам] [под] +1 | -1
t,fkf;f,fufl.re,

Чувствуешь разницу между "фигурные скобки" и "табуляция кода"? *

if (someVar == true) someVar2 = false; // НЕ ПРАВИЛЬНО!

Правильно будет так:
if (someVar == true) {
someVar2 = false;
}

Ну и естественно про табуляцию не забываем *

54. [автор] (30 июл 2014, 21:14) [0/0] [0] [отв] [спам] [под] +1 | -1
ex0rc1st,

ты сейчас помоему запорол код))

55. (30 июл 2014, 21:24) [0/0] [0] [отв] [спам] [под] +1 | -1
t,fkf;f,fufl.re,

Чем же интересно? Тем, что сделал его более удобным и простым для чтения и понимания?

56. [автор] (30 июл 2014, 22:04) [0/0] [0] [отв] [спам] [под] +1 | -1
ex0rc1st,

это всеравно что написать в пхп вот так if ($a = $b) { $c = true; } else { $c = false; }

57. (30 июл 2014, 22:17) [0/0] [0] [отв] [спам] [под] +1 | -1

*
Речь идёт не о конкретном примере моего кода, а о принципе. Синтаксис языка позволяет пропустить фигурные скобки, если за условием следует лишь одно действие. Но так делать не рекомендуется! За условием должны следовать фигурные скобки, а действие(-я) со следующей строки. После действия закрывающая фигурная скобка.
Это считается хорошим тоном в дизайне кода. И не зря! Действительно удобно читать и легко понять.

58. [автор] (6 авг 2014, 22:09) [0/0] [0] [отв] [спам] [под] +1 | -1

[code]

/*
* ajax
*
*/

// set ajax dir
var dir = 'ajax';


function ajax(obj) {

if (obj.element) var element = document.getElementById(obj.element);



// check if supported ActiveX scripts
if (window.XMLHttpRequest) {


// make new object
var XHR = new XMLHttpRequest();
// request handler
XHR.onreadystatechange = function () {
// request state
if (XHR.readyState == 4) {

// success
if (XHR.status == 200) {


if (obj.element) element.innerHTML = XHR.responseText;


// callback
obj.success();

}
// fail
else if (XHR.status == 400) {


if(obj.element) element.innerHTML = 'Ошибка.';


// callback
obj.fail();

}
}
}


// make ht adress
var ht = 'http://' + window.location.hostname + '/' + dir + '/' + obj.action;

// POST
if (obj.method == 'POST') {

// make url string
XHR.open(obj.method, ht, obj.async);

// set header
XHR.setRequestHeader("content-type", "application/x-www-form-urlencoded"*;
// sending..
XHR.send(obj.v);

}
// GET
else {

// make url string
XHR.open(obj.method, ht + '?' + obj.v, obj.async);
// sending..
XHR.send(null);

}
}
else {

if (obj.element) element.innerHTML = 'Ошибка. Включите поддержку ActiveX.';

// callback
obj.fail();

}

};


[/code]
Добавлено 06.08.14 в 22:21:58:
Пример использования у меня в движке: [code] $output .= '<a href="#" onclick="ajax({
\'action\' : \'example.php\',
\'method\' : \'POST\',
\'async\' : true,
\'v\' : \'val1=&val2=&va3=\',
\'success\': function () {alert(\'success\');},
\'fail\' : function () {alert(\'fail\');}
});">test ajax</a>';
[/code]
Работает на ура.
Добавлено 07.08.14 в 05:01:31:
а если так?

[code]


/*
* ajax
*
*/



// set ajax dir
var dir = 'ajax';

// all activex versions
var ActiveXObjectVersions = new Array('MSXML2.XMLHHTP.6.0',
'MSXML2.XMLHHTP.5.0',
'MSXML2.XMLHHTP.4.0",
'MSXML2.XMLHHTP.3.0',
'MSXML2.XMLHHTP',
'Microsoft.XMLHHTP');
//
var xmlhttp;

function ajax(obj) {

if (obj.element) var element = document.getElementById(obj.element);

var i = 0;
for (i = 0; i < XMLHttpVersions.length; i++) {

if(typeof ActiveXObject(ActiveXObjectVersions[i]) != 'undefined') {

//
xmlhttp = new ActiveXObject(XMLHttpVersions[i]);

}

}

if (!xmlhttp) {

//
xmlhttp = new XMLHttpRequest();

}



// request handler
xmlhttp.onreadystatechange = function () {
// request state
if (xmlhttp.readyState == 4) {
// success
if (xmlhttp.status == 200) {

// response
if (obj.element) element.innerHTML = XHR.responseText;

// callback
obj.success();

}
// fail
else if (xmlhttp.status == 400) {
// response
if(obj.element) element.innerHTML = 'Ошибка.';

// callback
obj.fail();

}
}
}

// make ht adress
var http = 'http://' + window.location.hostname + '/' + dir + '/' + obj.action;

// POST
if (obj.method == 'POST') {

// make url string
xmlhttp.open(obj.method, http, obj.async);

// set header
xmlhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded"*;
// sending..
xmlhttp.send(obj.v);

}
// GET
else {

// make url string
xmthttp.open(obj.method, http + '?' + obj.v, obj.async);
// sending..
xmlhttp.send(null);

}

};

[/code]
Добавлено 07.08.14 в 06:50:59:
более поработанная версия
[code]


/*
* ajax
*
*/



// set ajax dir
var dir = 'ajax';

// all activex versions
var ActiveXObjectVersions = ['MSXML2.XMLHHTP.6.0',
'MSXML2.XMLHHTP.5.0',
'MSXML2.XMLHHTP.4.0",
'MSXML2.XMLHHTP.3.0',
'MSXML2.XMLHHTP',
'Microsoft.XMLHHTP'];
//
var req;

function ajax(obj) {


if (obj.element) var element = document.getElementById(obj.element);

var i = 0;
for (i = 0; i < XMLHttpVersions.length; i++) {

// find compare activex version
if(typeof ActiveXObject(ActiveXObjectVersions[i]) != 'undefined') {



//
req = new ActiveXObject(XMLHttpVersions[i]);

}

}

if (!req) {

//
req = new XMLHttpRequest();

}



// request handler
req.onreadystatechange = function () {

// request state
if (req.readyState == 4) {
// success
if (req.status == 200) {

// response
if (obj.element) element.innerHTML = XHR.responseText;

// callback
obj.success();

}
// fail
else {
// response
if(obj.element) element.innerHTML = 'Ошибка.';

// callback
obj.fail();

}
}
else {

}
}
else {

}


// add headers
var i = 0;
for (i = 0; i < obj.headers; i++) {

req.setRequestHeader(obj.headers[i]['name'], obj.headers[i]['value']);

}

// make ht adress
var http = 'http://' + window.location.hostname + '/' + dir + '/' + obj.action;


//
if (obj.v) {

//
var v, i;

for (i = 0; i < obj.v.length; i++) {

//
if (i ==0) {

//
v += obj.v[i]['name'] + '=' + obj.v[i]['value'];

}
else {

//
v += '&' + obj.v[i]['name'] + '=' + obj.v[i]['value'];

}

}
}


// POST
if (obj.method == 'POST') {

// make url string
req.open(obj.method, http, obj.async);

// auto set header
// xmlhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded"*;


// sending..
req.send(v);

}
// GET
else {

// make url string
req.open(obj.method, http + '?' + v, obj.async);
// sending..
req.send(null);

}

};

[/code]


Изм. 1 раз. / Посл. изм. (6 авг 2014, 22:21)
Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 2
Скачать тему | Файлы темы | Фильтр сообщений