我有一个 Angular 项目,我想使用Application Insights进行日志记录。
我试过这个教程,它工作得很好,但不是在 SSR 模式下。
当我在 SSR 模式下运行应用程序时,我收到此错误:
RerefenceError: XmlHttpRequest is not defined
Run Code Online (Sandbox Code Playgroud)
我找到了这个SO post,这似乎与我的问题相同。按照它的一个答案,我已经安装了XMLHttpRequest
库并将这一行添加到server.ts
:
(global as any).XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;
Run Code Online (Sandbox Code Playgroud)
不为我工作。Angular Universal 尚未响应http 请求。另外,我尝试使用“xhr2”库而不是“xmlhttprequest”,它也不起作用。
如何获得应用程序洞察以在 Angular SSR 模式下工作?
这就是我将应用程序洞察添加到我的项目的方式。
monitoring.service.ts
:ai
API的包装器:
RerefenceError: XmlHttpRequest is not defined
Run Code Online (Sandbox Code Playgroud)
然后像这样调用ai
at的初始化代码app.component.ts
:
(global as any).XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;
Run Code Online (Sandbox Code Playgroud)
我把它通过周围的所有相关应用的见解API的方法调用,如工作trackException()
和this.appInsights.loadAppInsights()
一个if statememt内:
import { ApplicationInsights } from "@microsoft/applicationinsights-web";
class MonitoringService …
Run Code Online (Sandbox Code Playgroud) azure-application-insights server-side-rendering angular-universal angular
现在我有一段 JavaScript 代码来更改网页的显示,例如突出显示一些数据,以便在阅读网页时可以轻松找到它们。
代码超级简单,你可以想象一下
document.getElementById(index).classList.add("highlight")
Run Code Online (Sandbox Code Playgroud)
index
用于查找需要更改的内容。我将把highlight
类附加到class
找到的内容的属性中,以便更改显示(仅用于说明目的)
现在的问题是,每当我打开网页时,我都需要将这段代码复制粘贴到Chrome中的控制台并运行,这很麻烦。所以我想知道当我加载网页时Chrome是否会自动运行这个脚本。举例来说,我有一个指向网页的超链接,当我单击该超链接时,将运行脚本并更改网页的显示。
Tampermonkey
对我来说并没有多大帮助。我有另一种方法来为不同的网页生成 JavaScript,这样当我加载不同的网页时,我想要运行的脚本就会改变。
在《Programming C# 5》一书中,我读到:
\n\n\n\n\n除了静态 Copy 方法之外,Array 类还定义了一个非静态 CopyTo 方法,该方法从指定的偏移量开始将整个数组复制到目标数组中。之所以存在此方法,是因为所有数组都实现了某些集合接口,包括 ICollection(其中 T\n 是 array\xe2\x80\x99s 元素类型),它定义了此 CopyTo 方法。Copy\n To 不保证正确处理重叠,并且文档建议在您知道\n 将处理数组\xe2\x80\x94CopyTo 的情况下使用 Array.Copy 只是为了通用目的\n 可与集合接口的任何实现一起使用的代码。\n
\n
CopyTo
它表示使用非静态方法时将无法正确处理重叠。问题是我认为当我们在数组上使用时可能不会发生重叠!CopyTo
因为,它正在尝试将整个数组复制到目的地。如果目的地与源相同,则目的地与源的大小相同,因此,我们可以复制到的唯一位置是0
(我的意思是第二个参数必须为零:)myArray.CopyTo(myArray, 0)
,因此,每个元素都在索引处精确复制,其中已经是了。那么这本书讲的重叠问题是什么呢?\n我所说的都可以在下面的代码中看到:
> var a = new int[] { 1, 2, 3 };\n> a\nint[3] { 1, 2, 3 }\n> a.CopyTo(a, 0) // this is the only way I can call this method without \n // getting error, If …
Run Code Online (Sandbox Code Playgroud) 我正在操作的原型,Object
以便我可以添加一些扩展方法。
我发现,typeof
运营商总是返回object
的情况下,操作数是this
:
Object.prototype.logType = function () { console.log(typeof this); }
"Hello".logType()
Run Code Online (Sandbox Code Playgroud)
上面代码的输出是object
而不是string
. 我知道在 JavaScript 中一切都确实是object
,但是我需要知道this
. 我怎样才能做到这一点?
我正在使用Flask-HTTPAuth进行身份验证。我想从视图显示不同的数据,具体取决于请求是否已通过身份验证。装饰视图auth.login_required
仅将其显示给已验证的用户。如何测试请求是否已通过Flask-HTTPAuth进行身份验证?
auth = HTTPBasicAuth()
@app.route("/clothesInfo")
@auth.login_required
def show_info():
return jsonify(blah blah blah)
Run Code Online (Sandbox Code Playgroud) 为了检索数据,首先我编写了LINQ
查询,我希望在调用该FirstAsync()
方法之前不会在数据库上执行该查询。
var query =
from tkn in Db.Set<TableA>()
where tkn.IsActive == true
where tkn.Token == token
select tkn.RelatedObjectMappedToTableB;
var retrievedObject = await clientQuery.FirstAsync();
Run Code Online (Sandbox Code Playgroud)
问题是在调试时,我可以在调用This之前Watch
看到Visual Studio中相关对象的值,
这对我来说意味着数据库已经被查询,并且 EF 没有等到我要求它这样做。 FirstAsync()
为什么会这样呢?我对linq 查询何时执行的看法是错误的吗?