Что такое injectedScriptId в протоколе Chrome Devtools? - PullRequest
0 голосов
/ 07 июня 2019

В CDP, когда, например, выполняется Debugger.evaluateOnCallFrame для оценки какого-либо объекта, ответ будет содержать свойство objectId, которое выглядит как {injectedScriptId: 1, id: 413}injectedScriptId никогда не меняется (по крайней мере, я никогда не наблюдал, как он изменился).Опора id представляется уникальным идентификатором объекта в памяти.

Смежный (даже более важный, но просто запрашивающий подтверждение) вопрос: является ли id in objectId уникальным идентификатором объекта во всей программе / процессе?Могу ли я положиться на него, чтобы построить сериализованное строковое представление переменных без циклических ссылок?

Так, какова цель injectedScriptId и что такое InjectedScript?

1 Ответ

0 голосов
/ 07 июня 2019

Ответ от JoelEinbinder :

Это внутренняя деталь реализации, поэтому вы не должны полагаться на нее, и она может измениться в любое время без предупреждения или не вести себя согласованно.

Внедренный скрипт - это внутренняя вещь, которую мы внедряем в контекст выполнения JavaScript для управления удаленными объектами и другими вещами.Вот почему у них есть отдельные счетчики идентификаторов.

Так что нет, внутренний идентификатор не уникален.Используйте строку.

...