Самое эффективное должно использовать StringBuilder, как так:
StringBuilder sb = new StringBuilder();
sb.Append("string1");
sb.Append("string2");
...etc...
String strResult = sb.ToString();
@jonezy: Строка. Concat прекрасен, если у Вас есть несколько мелочей. Но если Вы свяжете мегабайты данных, Ваша программа, вероятно, заправит.
В IE вы должны использовать attachEvent
, а не стандартный addEventListener
.
Обычной практикой является проверка наличия addEventListener
] доступен и используйте его, в противном случае используйте attachEvent
:
if (el.addEventListener){
el.addEventListener('click', modifyText, false);
} else if (el.attachEvent){
el.attachEvent('onclick', modifyText);
}
Вы можете создать функцию для этого:
function bindEvent(el, eventName, eventHandler) {
if (el.addEventListener){
el.addEventListener(eventName, eventHandler, false);
} else if (el.attachEvent){
el.attachEvent('on'+eventName, eventHandler);
}
}
// ...
bindEvent(document.getElementById('myElement'), 'click', function () {
alert('element clicked');
});
Вы можете запустить пример приведенного выше кода здесь .
Третий аргумент addEventListener
- useCapture
; если истинно, это означает, что пользователь желает инициировать захват события .
Internet Explorer (IE8 и ниже) не поддерживает addEventListener (...)
. У него есть собственная модель событий, использующая метод attachEvent
. Вы можете использовать такой код:
var element = document.getElementById('container');
if (document.addEventListener){
element .addEventListener('copy', beforeCopy, false);
} else if (el.attachEvent){
element .attachEvent('oncopy', beforeCopy);
}
Хотя я рекомендую избегать написания собственной оболочки обработки событий и вместо этого использовать среду JavaScript (например, jQuery , Dojo , MooTools) , YUI , Prototype и т. Д.) И избегайте создания исправления для этого самостоятельно.
Кстати, третий аргумент в модели W3C для events имеет отношение к разнице между всплывающими и захватывающими событиями . Практически в любой ситуации вы захотите обрабатывать события по мере их появления, а не в момент их захвата. Это полезно при использовании делегирования событий для таких вещей, как события «фокус» для текстовых полей, которые не всплывают.
Проблема в том, что IE не имеет стандартного метода addEventListener
. IE использует собственное attachEvent
, которое делает почти то же самое.
Хорошее объяснение различий, а также 3-го параметра можно найти в quirksmode .