作为序言,我意识到这是一个非常高级的问题,但我正在寻找关于如何最好地构建解决方案而不是如何实现它的输入。
到目前为止我所拥有的内容如下:
- 由于我们使用多个跟踪供应商,因此每个供应商的跟踪代码都包含在一个标准化跟踪方法的对象中。我们的想法是,无论使用哪种跟踪供应商,都可以调用某些方法,从而使供应商可以互换。
- 每个供应商包装器都接受一个跟踪规则对象,该对象提供有关跟踪内容和时间的说明。 例如,跟踪规则对象包括在适当的时间执行的onDOMReady,onFormSubmit和onDOMChange方法。
醇>
我目前正在努力解决的问题是收集事件数据的最佳方法。在过去,规则对象总是以下列方式收集数据:
- 解析当前网址(基于已知的网址结构)。
- 为标记(如h1或标题)和属性(如表单名称)
中的值刮取DOM
- 挖掘各种实例化的JS对象以搜索其他数据。 例如从user.current.id中提取用户的ID。
这在过去很有用,因为它允许跟踪在幕后执行。当然,收集方法首先要求人们小心他们所改变的东西,因为看似安全的改变对象和DOM结构会对跟踪产生巨大影响。由于许多不同的人为代码做出了贡献,我们正在寻找更好的方法来处理数据收集。
浮出水面的一些想法是:
- 使用数据绑定将所有跟踪信息存储在DOM中。这具有透明的优点,但是导致冗长的缺点。此外,如果仅使用它,则需要将仅存在于JS对象中的数据传输到DOM。
- 继续使用我们的非侵入式方法,但编写更广泛的单元测试。 (这是一个明智的选择,但我希望将其与更清晰的数据收集流程配对,以使其成为一项不那么艰巨的任务)
是否有可能有帮助的最佳做法,理念或建议?