Javascript 对于坚持使用NoScript之类东西的小部分用户,该怎么办?

Javascript 对于坚持使用NoScript之类东西的小部分用户,该怎么办?,javascript,noscript,Javascript,Noscript,我想让一个网站完全基于套接字和ajax进行用户交互。这意味着关闭javascript的用户甚至无法以任何方式向网站发送更新,甚至无法注册。他们只能读取数据 那么,大家对此有什么看法?我是否应该花点时间让网站变得足够灵活,以便能够处理一小群关闭了脚本的人 这也是一个我希望能够在更多网站中重用的框架。你所做的每一个决定都会影响部分用户。 理想的屏幕大小、打开或关闭cookie、JavaScript等等都会产生影响 但这并不新鲜。如果你为iOS编写应用程序,它就不能在Android上运行。如果你为xB

我想让一个网站完全基于套接字和ajax进行用户交互。这意味着关闭javascript的用户甚至无法以任何方式向网站发送更新,甚至无法注册。他们只能读取数据

那么,大家对此有什么看法?我是否应该花点时间让网站变得足够灵活,以便能够处理一小群关闭了脚本的人


这也是一个我希望能够在更多网站中重用的框架。

你所做的每一个决定都会影响部分用户。 理想的屏幕大小、打开或关闭cookie、JavaScript等等都会产生影响

但这并不新鲜。如果你为iOS编写应用程序,它就不能在Android上运行。如果你为xBox编写游戏,它不会在PlayStation上运行

我个人的看法是,如果人们真的关闭了浏览器中的JavaScript(统计数据表明这是一个相当低的百分比),那么他们将获得较差的web体验。他们将无法正确使用您的站点。在我看来,没关系。你做出了选择,他们也做出了选择。您希望您的用户获得良好的体验,因此您将重点放在这一点上

让我们把它比作Windows和Mac软件。Windows占桌面市场的95%,Mac占5%。(我在编数字——确切的数据是什么并不重要)。所以,很自然,你会先为PC编写程序。之后,你可以花时间为Mac重新编写程序,或者为PC改进程序。大多数人选择为PC改进程序


我现在在营地里,我不太关心少数民族。我不再在IE6中测试了。我需要打开JavaScript。我需要至少一个会话cookie的支持。如果你想继续使用IE6,那就去吧,但那是你的决定,所以如果你不能使用这个网站,就不要向我哭诉。我不支持有10年历史的手机,那么为什么要支持有10年历史的浏览器呢?我理解有些人关闭JavaScript的逻辑——但我不会为了适应你而减少其他98%人的体验。而且我没有时间重写所有内容两次。

因为我们对您的网站、您的商业模式、您的客户以及“小”有多小一无所知,所以我们不可能就它是否值得向您提供建议。这肯定会导致大量的工作,并且可能会导致用户体验中的一些不一致

要在两者之间尽可能多地重用,可以做的一件事是使用严格的MVC模型。模型层可以获取请求的每一条数据,而它前面的facade层可以为这两种请求提供服务

假设你的网站有一个会员档案管理页面。该模型有一个成员对象,其中包含设置/获取标识符、地址、电话号码、电子邮件地址等的方法

场景A,JS已启用:
1) “profile admin”菜单选项中的链接在后端调用getProfile()。它通过调用getIdentifiers()、getAddress()、getPhone()等来构建要发送回的HTML/JavaScript,并将其发送回客户端。
2) 用户在其个人资料页面上更改电话号码。由于启用了JS,因此将对setPhone()进行AJAX调用,当返回结果时,只更新页面的该部分

场景B,JS被禁用: 1) “profile admin”菜单选项中的链接在后端调用getProfile()。会话数据将有一个布尔值,指出JS已禁用,因此呈现的页面具有表单和提交按钮。 2) 用户将数据提交到setProfile(),其中包含所有字段(无论是否更改)。返回的是通过getProfile()使用新信息重新呈现页面

关于在关闭JS时显示备用内容


所以这是可能的。然而,正如布鲁斯所说,除非你真的需要这些人,否则他们会得到他们应得的。我个人不会经历那种程度的努力,就像我会试图解释那些可能试图通过14.4K调制解调器访问该网站的用户一样。所有这些关闭JS的工具都允许您指定异常网站。

我有相同的看法。只是想知道其他人对这件事的看法。IE6与关闭Javascript有些不同。IE预先安装在许多计算机上,或者是学校/工作计算机上的默认浏览器。所以很多用户不知道,不在乎,或者不能安装其他浏览器。但是默认情况下,Javascript在每个浏览器中都处于启用状态。只有在互联网上花费了足够时间的用户才会尝试禁用它。这完全是他们的选择。谢谢。开发模型层以使其更灵活是个好主意。现在我不会为关闭JS的用户做任何事情。但如果我以后改变主意,我会保持足够的灵活性。按照我现在使用控制器、视图和模型进行设置的方式,我只需要向控制器添加一些方法,使表单提交到这些新方法,然后使用JS检查表单,并使它们通过ajax/websocket提交。