Как может объект сам разрушать на событии, в JavaScript?

У меня была похожая проблема несколько недель назад. IIRC confluent-kafka-go требует последней версии librdkafka-dev, которая просто еще не была выпущена для Alpine или других. Хотя я смог найти его для Ubuntu, поэтому мое решение (которое было более сложным, чем я ожидал, но оно работало) состояло в том, чтобы начать с чистой Ubuntu, установить librdkafka-dev, установить нужную версию Go и скомпилировать в Docker ,

Вот как это выглядит:

FROM ubuntu

# Install the C lib for kafka
RUN apt-get update
RUN apt-get install -y --no-install-recommends apt-utils wget gnupg software-properties-common
RUN apt-get install -y apt-transport-https ca-certificates
RUN wget -qO - https://packages.confluent.io/deb/5.1/archive.key | apt-key add -
RUN add-apt-repository "deb [arch=amd64] https://packages.confluent.io/deb/5.1 stable main"
RUN apt-get update
RUN apt-get install -y librdkafka-dev

# Install Go
RUN add-apt-repository ppa:longsleep/golang-backports
RUN apt-get update
RUN apt-get install -y golang-1.11-go

# build the library
WORKDIR /go/src/gitlab.appsflyer.com/rantav/kafka-mirror-tester
COPY *.go ./
COPY // the rest of your go files. You may copy recursive if you want
COPY vendor vendor

RUN GOPATH=/go GOOS=linux /usr/lib/go-1.11/bin/go build -a -o main .

EXPOSE 8000

ENTRYPOINT ["./main"]
6
задан Chetan Sastry 14 February 2009 в 00:12
поделиться

3 ответа

function removeElement(divNum) {
  var d = document.getElementById('myDiv');
  var olddiv = document.getElementById(divNum);
  d.removeChild(olddiv);
}
0
ответ дан 8 December 2019 в 16:10
поделиться

Принятый ответ кажется неправильным мне. Во-первых, это не рассматривает newdiv, содержащий childnodes, таким образом, предложенные удаляют стандартную программу, поддерживает опасность для утечек памяти через закрытия (IE). Во-вторых, из-за положения 'newdiv = пустой указатель' функция creatediv сразу уничтожает справедливый созданный элемент. Я рекомендовал бы использовать функцию чистки Douglas Crockfords для обработчика щелчков, заняв место d с этим.

function purge(d) {
    var a = d.attributes, i, l, n;
    if (a) {
        l = a.length;
        for (i = 0; i < l; i += 1) {
            n = a[i].name;
            if (typeof d[n] === 'function') {
                d[n] = null;
            }
        }
    }
    a = d.childNodes;
    if (a) {
        l = a.length;
        for (i = 0; i < l; i += 1) {
            purge(d.childNodes[i]);
        }
    }
}
5
ответ дан 8 December 2019 в 16:10
поделиться

Просто установка его пустой указатель не уничтожит его. Необходимо удалить его из дерева документов при проверке, что нет никаких ссылок, указывающих на него.

function creatediv(id) {
    var newdiv = document.createElement('div');
    newdiv.setAttribute('id', id);
    newdiv.onclick=function(e) {
        this.parentNode.removeChild(this);
    };  
    document.body.appendChild(newdiv);
    newdiv = null;//required in IE to prevent memory leak
}
10
ответ дан 8 December 2019 в 16:10
поделиться
Другие вопросы по тегам:

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