Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecated feature used when using with jQuery 3.7.1 #2256

Open
cpatel22 opened this issue Feb 2, 2024 · 8 comments
Open

Deprecated feature used when using with jQuery 3.7.1 #2256

cpatel22 opened this issue Feb 2, 2024 · 8 comments

Comments

@cpatel22
Copy link

cpatel22 commented Feb 2, 2024

image

@MSNev
Copy link
Collaborator

MSNev commented Feb 2, 2024

Can you provide more information, like what is that feature?

If this is the unload event hook we have configuration you can supply to block the SDK from attempting to "hook" the event (if present) and thus avoid this "warning", but we can't just remove it, as it's required for older runtimes and this is a single bundle for everyone.

@MSNev
Copy link
Collaborator

MSNev commented Feb 2, 2024

If it's "hard" to identify because of the minified code you can change the URL to ai.3.gbl.js for the un-minified version

@cpatel22
Copy link
Author

cpatel22 commented Feb 2, 2024

We are using Application Insight in our web application. but today we upgrade jquery version to latest version 3.7.1 and we start to receiving Deprecated feature used error.

so it's look like contain something that in jquery 3.7.1 is Deprecated.

!(function (cfg) { function e() { cfg.onInit && cfg.onInit(i) } var S, u, D, t, n, i, C = window, x = document, w = C.location, I = "script", b = "ingestionendpoint", E = "disableExceptionTracking", A = "ai.device."; "instrumentationKey"[S = "toLowerCase"](), u = "crossOrigin", D = "POST", t = "appInsightsSDK", n = cfg.name || "appInsights", (cfg.name || C[t]) && (C[t] = n), i = C[n] || function (l) { var d = !1, g = !1, f = { initialize: !0, queue: [], sv: "7", version: 2, config: l }; function m(e, t) { var n = {}, i = "Browser"; function a(e) { e = "" + e; return 1 === e.length ? "0" + e : e } return n[A + "id"] = i[S](), n[A + "type"] = i, n["ai.operation.name"] = w && w.pathname || "_unknown_", n["ai.internal.sdkVersion"] = "javascript:snippet_" + (f.sv || f.version), { time: (i = new Date).getUTCFullYear() + "-" + a(1 + i.getUTCMonth()) + "-" + a(i.getUTCDate()) + "T" + a(i.getUTCHours()) + ":" + a(i.getUTCMinutes()) + ":" + a(i.getUTCSeconds()) + "." + (i.getUTCMilliseconds() / 1e3).toFixed(3).slice(2, 5) + "Z", iKey: e, name: "Microsoft.ApplicationInsights." + e.replace(/-/g, "") + "." + t, sampleRate: 100, tags: n, data: { baseData: { ver: 2 } }, ver: 4, seq: "1", aiDataContract: undefined } } var h = -1, v = 0, y = ["js.monitor.azure.com", "js.cdn.applicationinsights.io", "js.cdn.monitor.azure.com", "js0.cdn.applicationinsights.io", "js0.cdn.monitor.azure.com", "js2.cdn.applicationinsights.io", "js2.cdn.monitor.azure.com", "az416426.vo.msecnd.net"], k = l.url || cfg.src; if (k) { if ((n = navigator) && (~(n = (n.userAgent || "").toLowerCase()).indexOf("msie") || ~n.indexOf("trident/")) && ~k.indexOf("ai.3") && (k = k.replace(/(\/)(ai\.3\.)([^\d]*)$/, function (e, t, n) { return t + "ai.2" + n })), !1 !== cfg.cr) for (var e = 0; e < y.length; e++)if (0 < k.indexOf(y[e])) { h = e; break } var i = function (e) { var a, t, n, i, o, r, s, c, p, u; f.queue = [], g || (0 <= h && v + 1 < y.length ? (a = (h + v + 1) % y.length, T(k.replace(/^(.*\/\/)([\w\.]*)(\/.*)$/, function (e, t, n, i) { return t + y[a] + i })), v += 1) : (d = g = !0, o = k, c = (p = function () { var e, t = {}, n = l.connectionString; if (n) for (var i = n.split(";"), a = 0; a < i.length; a++) { var o = i[a].split("="); 2 === o.length && (t[o[0][S]()] = o[1]) } return t[b] || (e = (n = t.endpointsuffix) ? t.location : null, t[b] = "https://" + (e ? e + "." : "") + "dc." + (n || "services.visualstudio.com")), t }()).instrumentationkey || l.instrumentationKey || "", p = (p = p[b]) ? p + "/v2/track" : l.endpointUrl, (u = []).push((t = "SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details)", n = o, r = p, (s = (i = m(c, "Exception")).data).baseType = "ExceptionData", s.baseData.exceptions = [{ typeName: "SDKLoadFailed", message: t.replace(/\./g, "-"), hasFullStack: !1, stack: t + "\nSnippet failed to load [" + n + "] -- Telemetry is disabled\nHelp Link: https://go.microsoft.com/fwlink/?linkid=2128109\nHost: " + (w && w.pathname || "_unknown_") + "\nEndpoint: " + r, parsedStack: [] }], i)), u.push((s = o, t = p, (r = (n = m(c, "Message")).data).baseType = "MessageData", (i = r.baseData).message = 'AI (Internal): 99 message:"' + ("SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details) (" + s + ")").replace(/\"/g, "") + '"', i.properties = { endpoint: t }, n)), o = u, c = p, JSON && ((r = C.fetch) && !cfg.useXhr ? r(c, { method: D, body: JSON.stringify(o), mode: "cors" }) : XMLHttpRequest && ((s = new XMLHttpRequest).open(D, c), s.setRequestHeader("Content-type", "application/json"), s.send(JSON.stringify(o)))))) }, a = function (e, t) { g || setTimeout(function () { !t && f.core || i() }, 500), d = !1 }, T = function (e) { var n = x.createElement(I), e = (n.src = e, cfg[u]); return !e && "" !== e || "undefined" == n[u] || (n[u] = e), n.onload = a, n.onerror = i, n.onreadystatechange = function (e, t) { "loaded" !== n.readyState && "complete" !== n.readyState || a(0, t) }, cfg.ld && cfg.ld < 0 ? x.getElementsByTagName("head")[0].appendChild(n) : setTimeout(function () { x.getElementsByTagName(I)[0].parentNode.appendChild(n) }, cfg.ld || 0), n }; T(k) } try { f.cookie = x.cookie } catch (p) { } function t(e) { for (; e.length;)!function (t) { f[t] = function () { var e = arguments; d || f.queue.push(function () { f[t].apply(f, e) }) } }(e.pop()) } var r, s, n = "track", o = "TrackPage", c = "TrackEvent", n = (t([n + "Event", n + "PageView", n + "Exception", n + "Trace", n + "DependencyData", n + "Metric", n + "PageViewPerformance", "start" + o, "stop" + o, "start" + c, "stop" + c, "addTelemetryInitializer", "setAuthenticatedUserContext", "clearAuthenticatedUserContext", "flush"]), f.SeverityLevel = { Verbose: 0, Information: 1, Warning: 2, Error: 3, Critical: 4 }, (l.extensionConfig || {}).ApplicationInsightsAnalytics || {}); return !0 !== l[E] && !0 !== n[E] && (t(["_" + (r = "onerror")]), s = C[r], C[r] = function (e, t, n, i, a) { var o = s && s(e, t, n, i, a); return !0 !== o && f["_" + r]({ message: e, url: t, lineNumber: n, columnNumber: i, error: a, evt: C.event }), o }, l.autoExceptionInstrumented = !0), f }(cfg.cfg), (C[n] = i).queue && 0 === i.queue.length ? (i.queue.push(e), i.trackPageView({})) : e(); })({
    src: "https://js.monitor.azure.com/scripts/b/ai.3.gbl.min.js",
    crossOrigin: "anonymous",
    name: "rcomAppInsights",
    onInit: function (sdk) {
        sdk.addTelemetryInitializer(function (envelope) {
            envelope.tags = envelope.tags || [];
            envelope.tags.push({ "ai.cloud.role": hostName });
        });
    },
    cfg: {
        connectionString: ""
    }
});

@MSNev
Copy link
Collaborator

MSNev commented Feb 2, 2024

so it's look like contain something that in jquery 3.7.1 is Deprecated.

We don't use or rely on anything in jQuery, so it seems like it must be updating a prototype function or something.

We also generally don't rely on any specific overrides, we do however, "use" any polyfill that your framework/application might add if it's not already present in the runtime and only fallback to our internal polyfill implementation functions (we don't add them to any prototype) if they are not present.

@cpatel22
Copy link
Author

cpatel22 commented Feb 2, 2024

so what you suggest next step? as we update new UI framework based on latest version of Jquery. so not able to move back also not want to loose our data with application insight and performance issue due to this.

@MSNev
Copy link
Collaborator

MSNev commented Feb 2, 2024

Based on the above is this issue occurring in the sdk loader? (the code you dumped above)

If so there is very little in there, TypeScript source of which is here https://github.com/microsoft/ApplicationInsights-JS/blob/main/tools/applicationinsights-web-snippet/src/snippet.ts (we don't have any unminified version of this checked in -- so if you want to keep using version 7, you would need to fork the repo and build it to get the unminified version) -- not a small amount of work (unless you already have a fork).

So as a "test", you could try using our previous version of the SDK Loader where we have the unminified version available here https://github.com/microsoft/ApplicationInsights-JS/blob/main/AISKU/snippet/snippet.js, that way we could possible "identify" what jQuery is doing. And if v6 doesn't have the issue, that tells us something as well. As v7 (apart from being converted to TypeScript) adds more resilency to the SDK loading by detection load failures to retrying to load the SDK from one of our other supported CDN domains.

@MSNev
Copy link
Collaborator

MSNev commented Feb 6, 2024

@cpatel22 Have you identified anything in Application Insights that appears to be getting reported as deprecated?
ie. Looking to see if there is something that would help reduce issue?

@cpatel22
Copy link
Author

cpatel22 commented Feb 6, 2024

Not yet, working on other stuff. will check later it. but let me know if you find anything before me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants