我自己编写了一个相当大而复杂的网站,所以你认为我需要支持javascript被关闭吗?
它支持全页回发的大量额外工作,我可以用JSON和ajax快速完成。
答案 0 :(得分:10)
我认为你应该支持这一点。事实上,如果您的网站涉及搜索引擎优化和机器人索引您的网站和所有这些,你应该支持javascript关闭。
作为一名现代网页设计师,您应首先开发您的网站,以便能够支持Javascript OFF。然后慢慢添加效果和Javascript增强功能。
示例如下:
<a href="page.php?p=2">Continue</a>
然后升级到:
<a href="page.php?p=2" onclick="doajax();return false;">Continue</a>
所以说如果Javascript用户点击链接,AJAX就完成了但是通常的链接被禁用了。但是,如果Javascript-OFF用户点击该链接,则会将用户重定向到正确的页面,该页面具有与javascript用户相同的内容。
如果你正在进行回发,你可以对AJAX做同样的事情。
首先没有Javascript构建网站的术语,然后添加Javascript和AJAX功能称为“渐进增强”。
答案 1 :(得分:9)
如果关闭JavaScript,您应该优雅地失败。
作为最低限度,您应该提出一条消息:“您必须启用JavaScript才能使用此网站” - 但是,根据您的网站,这可能会切断大部分潜在受众。< / p>
您可能需要考虑介于两者之间的某些内容,并使用回发完全复制您的功能。
答案 2 :(得分:6)
我通常首先在AJAXless网站上工作并建立起来。
始终努力信任graceful degradation和unobstrusive javascript的概念。
- 从网页的结构/内容和呈现中分离功能(“行为层”)
- 避免传统JavaScript编程问题的最佳实践(例如浏览器不一致和缺乏可伸缩性)
- 支持可能不支持高级JavaScript功能的用户代理的渐进增强
这可以通过确保链接和表单可以正确解析并且不仅仅依赖于Ajax来实现。在JavaScript中,例如可以使用“return false”暂停表单提交。如果没有出错,将执行Ajax代码并跳过表单提交。如果用户代理的Ajax支持出现任何问题,或者如果用户未启用JavaScript,则将提交表单并执行传统版本的操作。
在某些网站上,它可能比它的价值更多,但通常人们使用AJAX来保持冷静,这总是一个不好的理由,并最终放弃打破http常见和基本功能的页面(如书签和打开)单击时在新选项卡中。
答案 3 :(得分:3)
您需要编写服务器端代码以处理帖子,无论它们是否来自AJAX。
那么为什么不根据DRY principle进行编码,并为标准回发和AJAX请求重用相同的逻辑呢?
答案 4 :(得分:3)
一般来说,没有。但它也取决于应用程序的类型。如果你正在做一个高度窗口化(“丰富”)的应用程序,那么允许它并不一定有意义。换句话说:在用例不太可能/不常见的情况下,这样做的努力可能很重要。
如果你正在做一个控制用户环境的应用程序(例如公司内部网),那么你真的不需要。
如果你正在做一个“正常”的网站,其中Javascript很大程度上是装饰性的,那么你可能会,但实际上,没有Javascript工作的网站很大程度上是偶然的。如果它碰巧工作,那很好。如果不是,那就是生命。
最后,如果您的用户群非常大,那么它可能是值得的。 GMail是一个Javascript密集的网站,但它有一个简单的HTML版本,可能是因为它有这么多用户,1-2%的人禁用Javascript足以满足。
答案 5 :(得分:1)
问题是,你是否可以5% of your users失去你在JavaScript中的任何功能? (假设你正在做的事情不做优雅的降级/渐进增强等......)
如果您回答否,请花时间。我喜欢要求用户打开JavaScript。至少那时他们意识到他们可以选择打开他们失踪的东西。
答案 6 :(得分:1)
许多传统主义者会告诉你在浏览器上编写javascript代码。我的意见,正如你所说,对大多数组织而言,这太昂贵了。但是,您应该检查JS是否已打开,如果已关闭,请将浏览器重定向到指定使用系统要求的页面。
答案 7 :(得分:0)
我们这样做,但我们必须严格遵守508合规(残障人士的无障碍)。 JavaScript会给那些必须使用“读者”(阅读页面的程序,因为这个人看不到)的人带来困难,所以我们必须没有JavaScript选项。
答案 8 :(得分:0)
这取决于您的应用目标受众。在我看来,最初使用javascript功能构建网站而不考虑用户是否拥有它是不好的做法。但每个人都以他们想要的方式设计/开发网站。我喜欢首先编写一个没有任何javascript的网站。确保它有效,然后使用javascript逐步增强它。
确保您的网站可以访问是很多工作。如果您的应用程序面向游戏社区,我不会太担心可访问性。如果您的申请受政府法规的约束,则需要遵循WCAG和Section 508。
遵循WCAG和第508节的好处是你可以一石二鸟。您的网站不仅可供行动不便的人使用,而且屏幕阅读器和搜索引擎蜘蛛也可以访问它。
答案 9 :(得分:0)
正如其他人所说,这取决于。
有三种传统用例,其中禁用的javascript是“预期的”:
所有这些都在不断发展,在正常使用场景中包含javascript:
因此,长期趋势是,对于所有情况,您将被期望作为用户启用javascript。关于您今天所做的事情的问题取决于您的目标受众以及他们现在正在使用的内容。你应该知道。
渐进式渲染......这是一个不同的主题。 Gmail不进行渐进式渲染,只为不能使用完整前端的用户提供单独的前端。这个单独的前端并不能完成gmail所做的一切。我自己制作网络应用程序,我尝试了渐进式渲染一段时间,但最终最终使用了gmail的模型:
此模型使我能够以比使用渐进式渲染更低的成本为所有用户提供更好的用户体验。 YMMV。
答案 10 :(得分:0)
在开发网页时,我总是假设JS已被禁用。话虽如此,有许多需要JS的增强功能,因此使用noscript标记让用户知道非常重要。
<noscript>JavaScript is required to use the advanced features on this page, please enable JavaScript.</noscript>
答案 11 :(得分:0)
始终计划禁用JS - 但是,请了解用户群。大多数受js禁用的人不会使用桌面浏览器进行浏览,他们使用一些糟糕的移动电话浏览器浏览,其视口大小只有一分钱。或类似的东西。如果您觉得需要包含它们,请为这个人群制作简单,简单的骨骼设计。有些人;有些人没有。这只是你的产品/用户群的问题。
其次,带有no-js后备的ajaxified表单非常简单:将表单设计为常规的post表单,然后进行ajax调用,从表单中收集所需的所有信息。这包括但不限于字段数据,帖子网址,方法,名称等。如果你有js UI片段根据用户在表单中的决定(复选框,单选框等)而改变,你可以使用jQuery检查隐藏的复选框(将以no-js形式显示)并将所有事件基于复选框单击(item.click()),而不是花哨的js UI元素的单击。这样,您的表单将始终准确反映应用程序的状态,并且您的no-js和js实现完全同步。