繁体   English   中英

从背后的代码调用javascript与从javascript背后的代码调用

[英]Calling javascript from a code behind vs. calling a code behind from javascript

我有一个Web应用程序,将需要访问方法以及javascript方法背后的代码。 对于这个特定的实现,从程序流的角度来看,调用它们的顺序并不重要。

我正在寻找什么时候适合使用背后的代码调用javascript以及何时适合从背后的代码调用javascript的见解。 在继续实施之前,应该以一种方式或另一种方式进行操作会产生什么影响?

是否有最佳做法来做到这一点,或者它是否真的针对实际实施?

让我们谈谈从JavaScript调用服务器端代码。 这是通过使用Ajax执行的。 您可以在Web服务中调用Web方法,如果用特殊属性装饰它们,也可以调用Page方法。

从js调用服务器端的主要原因是使用ajax功能。

从服务器端调用js基本上是将javascript代码注入到页面中,然后在执行某些操作时调用客户端代码。

更新:

可能还有其他一些原因,您需要从javascript调用服务器端,这可能包括使用document.form.submit()手动提交表单。 但是我会说大多数情况下,超过90%的时间您会调用服务器端代码来使用ajax异步执行操作。

对于第二种情况,一个常见的示例是您想在gridview控件内的按钮中添加确认框。 在这种情况下,您将在gridview控件的databound事件中添加代码,并将javascript代码添加到gridview包含的按钮中。 最后,当呈现gridview时,gridview中的按钮将附加有javascript,当用户单击该按钮时,将弹出确认框。 另一种情况可能是发生回发后要打开新的弹出窗口的情况。

您是指服务器代码中的“代码落后”,对吗? JavaScript代码无法调用服务器代码。 通常,您的服务器代码将输出JS变量,JS函数或在编译时无法确定的任何其他客户端代码。

编辑 :为澄清起见,JS代码当然可以通过Ajax POST到服务器,这实际上是“调用服务器代码”。 我以为您是在问直接从JS调用代码隐藏函数的问题,因为它们在Visual Studio中“在同一页上”,除非您将这些函数公开为支持Ajax并使用某些客户端Ajax机制进行调用,否则这是不可能的他们。

为了最好地回答您的问题,特定的用例会有所帮助。 这样做没有一般的对与错原因-取决于您要完成的工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM