是否有可能完全开发'无javascript'的网站或网络应用程序?

时间:2009-10-31 11:01:36

标签: javascript

我是一名ASP.NET开发人员,他早已开始使用经典ASP。在Classis ASP中,一切都必须手动完成,没有智能调试支持,也不像VS那样伟大的IDE [DreamWeaver除外]。

只是一个'主观'思想,我想在这里讨论它作为'社区维基'。是否有可能在任何平台上开发完全“无javascript”的网站,这个平台与使用当今智能网络框架开发的任何网站一样可用且安全? ASP.Net使用javascript用于多种目的,包括使用javascript将回发作为主要功能。

这样做的开发方法是什么?我们将面临哪些困难?

假设HTTP是无状态的,我可以对此提出您的看法和想法吗?并且javascript对服务器没有意义。

1 个答案:

答案 0 :(得分:5)

不仅可以制作不依赖JavaScript的网站,而且让您的客户启用/可以使网站正常运行是非常不负责任的。

JavaScript应该用于增强体验,而不是依赖于基本功能。

显然,有些网站迎合不同的受众群体,但总的来说,任何大型商业网站都可以使用或不使用javascript(虽然也有例外)。

特别是关于ASP.Net,你有一些选择,但这意味着不依赖于某些控件。

有关类似问题,请参阅http://discuss.joelonsoftware.com/default.asp?dotnet.12.157029.2

引用:

  

AFAIK,只有

才需要Javascript      

1)客户端验证器
  2)非按钮控制上的自动回复
  3)MSDN文章中提到的其他控件(发布在Google thingum上) - LinkBut​​ton,HtmlButton和Calendar

     

因此,为避免使用Javascript,您可以使用普通表单按钮而不是链接按钮,使用表单按钮与控件一起使用,否则您将使用AutoPostBack,并使用自由格式文本框和System.DateTime.Parse日期。

     

为避免发送Javascript,我不知道最佳解决方案是什么。一种方法是在每个页面上使用“下层”用户代理设置;这可能会阻止ASP.NET在服务器控件上呈现任何CSS,但您可以使用Attributes集合强制执行此操作(control.Attributes [“class”] =“CssClassName”;)

     

希望有所帮助   Jesse Millikan
  2005年7月7日星期四

修改

另请参阅:http://msdn.microsoft.com/en-us/library/3hc29e2a%28VS.71%29.aspx提供有关哪些控件需要javascript的信息,http://msdn.microsoft.com/en-us/library/aa983760%28VS.71%29.aspx提供有关浏览器功能的信息

引用:

  

依赖于能够运行客户端脚本的ASP.NET服务器控件包括:

     
      
  • LinkBut​​ton和HtmlButton服务器控件需要脚本。 (对于Button Web服务器控件或HtmlInputButton或HtmlInputImage控件,情况并非如此。)
  •   
  • 默认情况下,Calendar控件使用LinkBut​​ton控件实现月份导航和日期选择。如果将控件属性设置为允许用户选择日,周或月,或者如果允许用户导航到其他月份,则Calendar控件将生成客户端脚本。如果您只使用Calendar控件显示没有选择或导航的单月,则控件不需要客户端脚本。
  •   
  • AutoPostBack属性设置为true的任何Web服务器控件;客户端脚本是必需的,以便控件发布页面。
  •   
  • Web验证控件,需要客户端脚本支持客户端验证。如果客户端不支持脚本,则验证仅在服务器上运行。
  •   

  

ClientTarget属性的值是要为其呈现的浏览器类型的别名。默认情况下,以下别名可用:

     
      
  • ie4使用Internet Explorer 4功能进行渲染。
  •   
  • ie5使用Internet Explorer 5功能进行渲染。
  •   
  • uplevel使用Internet Explorer 4功能进行渲染。
  •   
  • downlevel使用HTML 3.2功能呈现;也就是说,没有CSS支持。
  •   

修改

关于OP问题的第二部分,JavaScript在使用ASP.Net时严格是客户端,但ASP.Net生成的代码将包括发送到客户端的JavaScript以用于某些常见控件。

HTTP是无状态的,是的,但是cookie和会话可用于存储数据以维持某种状态。 (cookie通常也用于存储会话ID以恢复会话 - 尽管您可以在查询字符串中使用会话ID支持无cookie会话。)