针对旧浏览器的Blazor回退

针对旧浏览器的Blazor回退,blazor,webassembly,Blazor,Webassembly,上下文:我想在注册页面上创建一个简单的机器人检测机制(captcha)。因此,我决定使用一个带有Blazor客户端应用程序的iframe,它只显示一个复选框并执行一些C#操作(用salt散列变量)。因为它被编译成wasm,所以很难绕过它。我意识到这不是不可能的,但对于一个小网站来说,这应该足够了。它比必须键入内容更方便用户,而且它不依赖于第三方工具,如google的recaptcha 但显然,这在旧浏览器上不起作用。我可以为这些浏览器显示另一种验证码,但Blazor文档在浏览器支持方面没有太大帮

上下文:我想在注册页面上创建一个简单的机器人检测机制(captcha)。因此,我决定使用一个带有Blazor客户端应用程序的iframe,它只显示一个复选框并执行一些C#操作(用salt散列变量)。因为它被编译成wasm,所以很难绕过它。我意识到这不是不可能的,但对于一个小网站来说,这应该足够了。它比必须键入内容更方便用户,而且它不依赖于第三方工具,如google的recaptcha

但显然,这在旧浏览器上不起作用。我可以为这些浏览器显示另一种验证码,但Blazor文档在浏览器支持方面没有太大帮助(它们只说“最新”)

有没有办法确定浏览器是否能够正确处理Blazor

仅仅检测浏览器是否支持WebAssembly就足够了吗?还是Blazor还有其他要求

谢谢

没有一个C#代码被编译到WebAssembly。只有Mono运行时被编译为WebAssembly,然后它直接在浏览器中加载并运行应用程序DLL。我只是想先弄清楚

回答有关浏览器兼容性的问题。您可以通过CanIUse.com网站()检查哪些浏览器支持WebAssembly

我想补充一点,现在使用Blazor是一个相当繁重的解决方案,标准文件>新Blazor项目大约是2.4mb,这对于显示一个复选框来说是相当多的

没有一个C#代码被编译到WebAssembly。只有Mono运行时被编译为WebAssembly,然后它直接在浏览器中加载并运行应用程序DLL。我只是想先弄清楚

回答有关浏览器兼容性的问题。您可以通过CanIUse.com网站()检查哪些浏览器支持WebAssembly


我想补充一点,现在使用Blazor是一个相当繁重的解决方案,标准文件>新Blazor项目大约是2.4mb,这对于显示一个复选框来说是相当多的

谢谢你的回答。好像我有点困惑。。。但是DLL仍然不像javascript那样是人类可读的,因此它们仍然可以达到同样的目的。是的,文件大小是一个问题。这可能有点离题,但您知道另一种技术可以做到这一点,占用的空间更小吗?只需要占用2.4 mb的必要框架文件。并且只需要下载一次,直到框架的新版本发布。因此,一旦浏览器下载了这些文件(可能来自其他blazor网站),那么您的网站就不需要下载。谢谢您的回答。好像我有点困惑。。。但是DLL仍然不像javascript那样是人类可读的,因此它们仍然可以达到同样的目的。是的,文件大小是一个问题。这可能有点离题,但您知道另一种技术可以做到这一点,占用的空间更小吗?只需要占用2.4 mb的必要框架文件。并且只需要下载一次,直到框架的新版本发布。因此,一旦浏览器下载了这些文件(可能来自另一个blazor网站),那么您的网站就不需要下载。