我想为用户交互制作一个完全基于套接字和 ajax 的网站。这意味着关闭 javascript 的用户甚至无法以任何方式向网站发送更新,甚至无法注册。他们只能读取数据。
那么对此的普遍看法是什么?我应该花时间使网站足够灵活,以便能够处理一小群关闭脚本的人吗?
这也是我希望能够在更多网站中重用的框架。
我想为用户交互制作一个完全基于套接字和 ajax 的网站。这意味着关闭 javascript 的用户甚至无法以任何方式向网站发送更新,甚至无法注册。他们只能读取数据。
那么对此的普遍看法是什么?我应该花时间使网站足够灵活,以便能够处理一小群关闭脚本的人吗?
这也是我希望能够在更多网站中重用的框架。
你做出的每一个决定都会影响到一部分用户。理想的屏幕尺寸、cookie 的开启或关闭、JavaScript 等等都会产生影响。
但这并不新鲜。如果您为 iOS 编写应用程序,它就无法在 Android 上运行。如果您为 xBox 编写游戏,它不会在 PlayStation 上运行。
我个人的看法——如果人们真的在他们的浏览器中关闭了 JavaScript(并且统计数据表明这是一个相当低的百分比),那么他们将获得较差的网络体验。他们将无法正确使用您的网站。海事组织没关系。你做出了选择,他们也做出了选择。您希望您的用户获得良好的体验,因此您专注于此。
让我们将其类比为 Windows 和 Mac 软件。Windows 占有桌面市场的 95%,Mac 占有 5%。(我正在编造数字——确切的统计数据是什么并不重要)。所以很自然地,您首先为 PC 编写程序。之后,您可以花时间为 Mac 重新编写,或为 PC 改进。大多数人选择改进PC。
我现在在营地里,我不太关心少数族裔。我不再在 IE6 中测试了。我需要打开 JavaScript。而且我至少需要一个会话 cookie 的支持。如果你想继续使用 IE6 - 去吧,但这是你的决定,所以如果你不能使用该网站,请不要来找我哭。我不支持 10 年的手机,为什么要支持 10 年的浏览器?我理解一些人关闭 JavaScript 的逻辑——但我不会为了适应你而减少其他 98% 的人的体验。而且我没有时间将所有内容重写两次。
由于我们对您的网站、您的商业模式、您的客户或“小”有多小一无所知,因此我们无法就是否值得向您提供建议。这肯定会导致大量工作,并且可能会导致用户体验中的一些不一致。
在两者之间尽可能多地重用您可以做的一件事是使用严格的 MVC 模型。模型层可以获取请求的每条数据,而它前面的外观层可以为这两种请求提供服务。
假设您的网站有一个会员资料管理页面。该模型有一个 Member 对象,其中包含设置/获取标识符、地址、电话号码、电子邮件地址等的方法。
场景 A,JS 已启用:
1) 来自“配置文件管理员”菜单选项的链接调用后端的 getProfile()。通过调用 getIdentifiers()、getAddress()、getPhone() 等来构建要发回的 HTML/JavaScript,并将其发送回客户端。
2) 用户在他们的个人资料页面上更改电话号码。由于启用了 JS,将对 setPhone() 进行 AJAX 调用,当返回结果时,仅更新页面的该部分。
场景 B,JS 被禁用:1) 来自“配置文件管理员”菜单选项的链接调用后端的 getProfile()。会话数据将有一个布尔值,指出 JS 已禁用,因此呈现的页面具有表单和提交按钮。2) 用户向 setProfile() 提交数据,包含所有字段,无论是否更改。发回的是通过 getProfile() 使用新信息重新呈现页面。
另请参阅这篇关于在 JS 关闭时呈现替代内容的帖子。
所以这是可能的。然而,正如布鲁斯所说,除非你真的需要这些人口,否则他们会得到他们应得的。我个人不会经历那种程度的努力,就像我会尝试考虑可能尝试通过 14.4K 调制解调器访问该站点的用户一样。所有这些关闭 JS 的工具都允许您指定异常网站。