Что такое injectedScriptId в протоколе Chrome Devtools?
В CDP, когда, например, при выполнении Debugger.evaluateOnCallFrame для оценки какого-либо объекта, ответ будет содержать objectId
свойство, которое выглядит как {injectedScriptId: 1, id: 413}
, И injectedScriptId
никогда не меняется (по крайней мере, я никогда не видел, чтобы это изменилось). id
prop кажется уникальным идентификатором объекта в памяти.
Смежный (даже более важный, но просто ищущий подтверждение) вопрос: id
в objectId
уникальный идентификатор объекта во всей программе / процессе? Могу ли я положиться на него, чтобы построить сериализованное представление переменных без циклических ссылок?
Так какова цель injectedScriptId
и что InjectedScript
?
1 ответ
Это внутренняя деталь реализации, поэтому вам не следует полагаться на нее, и она может измениться в любое время без предупреждения или не работать согласованно.
Внедренный скрипт - это внутренняя вещь, которую мы внедряем в контекст выполнения JavaScript для управления удаленными объектами и другими вещами. Вот почему у них есть отдельные счетчики идентификаторов.
Так что нет, внутренний идентификатор не уникален. Используйте строку.