javascript不可用的问题探究

昨天在Twitter上的一些有趣的讨论中, 我发现人们对于Web应用和站点对javascript的依赖普遍存在一种疑惑. 这种疑惑一直都存在, 而对我而言, 这个问题随着浏览技术的飞跃发展而集中爆发了.

我第一次遇到这个问题还是在DHTML盛行的时代. 我们对浏览器无所不用其极, 加上各种动画菜单、3D标签(我们现在已经学会不再使用这些了), 但总有人告诉我们javascript不可用.

谁禁用了javascript

第一个要问的问题是这些javascript不可用的环境在哪里. 下面是一些可能的答案:

  • 安全系统比如noscript或者公司代理过滤掉了javascript;
  • 功能手机比如旧式黑莓(我还记得将旧式黑莓换到Opera Mini以获得总算还过得去的上网体验);
  • 在移动应用环境中, 图片和脚本有时候会被拆分处理;
  • 在流量有限或者接入很慢的区域中;
  • 人们因为个人原因禁用了javascript;
  • 讨厌广告弹出等强势广告的人.

就像你所看到的那样, javascript被禁用的原因多种多样, 有被动的, 也有主动的. 所以不能说只有乱用网络的人才会遭遇这样的问题.

为什么javascript会被禁用

像上面所列举的那样, javascript被禁用的原因多种多样. 如果它是被有意禁用的, 那么我猜主要原因无非以下三点, 即安全考虑、广告疲劳以及慢速连接.

安全考虑在情理之中. 几乎每一个在客户端的攻击都是使用的javascript(大多数情形下都是利用了插件的漏洞). Java当然是当前最大的安全漏洞, 但是通过javascript同样会对存在漏洞的网站或者不经保护或者过时的浏览器以及操作系统造成安全威胁.

慢速连接是个很有意思的原因. 非常讽刺的是, 我们使用javascript是为了加速客户端体验. 最初使用js的一个例子就是在客户端对表单进行验证从而避免服务器端不必要的工作周期.

如果你现在正处于一个很差的连接中(比如一个无线连接或者很差的3G连接), 你想要使用Google Reader或者Gmail, 你只能得到一个不完整的页面, 这时候只有使用低版本的才能更好工作.

为了两方都好

基于环境以及连接给用户最好的体验是非常好的. 这也是渐进增强(progressive enhancement)所研究的问题. 这也并非是很高深的东西, 它很简单, 并且是处于完全的实用主义.

使用事件授权这样的技术是非常简单的. 你可以通过点击父元素的handlers来写你自己的HTML, 使用innerHTML或者其他一些更新更快的技术.

为什么是这样一个问题

坦白说, 我也不太清楚. 或许是因为我太过时了, 或许是因为我已经一次有一次对浏览器和网络连接失望了, 或许是因为我只想更安全一些. 我只是不明白为什么人们只想要js的解决方案呢, 而实际上, js只是用来提供一些增强功能的.

费解的应用边缘案例

人们时常怀有疑问的是"应用需要javascript". 如果我们足够坦诚, 我们就会发现, 这样的应用实际上是很少的. 如果一定要说出一些, 我只能想到的是浏览器中的photoshop或者其他的一些编辑器(比如视频、浏览器中的IDE)才需要依赖于javascript. 其他都可以通过重新加载和服务器端的一些部件解决.

让我们直面这样一个事实——在Node.js的时代, 服务器端也可以用javascript来写. Dav Glass of Yahoo两年前显示如果一个工具库编写成余环境独立的, 那么你就可以同时在客户端和服务器端复用这些工具.

"应用需要javascript"的真正原因似乎是其他原因, 而非技术上的.

"应用需要javascript"的真正原因

正如禁用javascript可以有很多原因, 应用需要javascript也有很多原因.

  • 你只知道js并且认为人们就应该升级他们的浏览器. 这无可厚非, 但是这样的看法是很狭隘的, 并且很容易失败.
  • 和你一起构建应用的团队没有服务器端的技能, 你希望能以较低的代价完成这个应用. 这或许有效, 但是这样可能让开发时间和资金都加倍. 要提前为这样的开发做好规划.
  • 你想要尽快写出应用, 并且你知道以后你会重写这个应用的. 这是很常见的现象, 尤其是你可以因此而成功. 愿上天保佑你吧, 千万别让人知道你会待很久.
  • 你的应用会在一个纯js的环境中运行. 这当然意味着你没必要不使用js而完成你的应用. 一个很好的例子就是Air applications. 但你要保证这个环境在将来不出问题.
  • 你的应用确实需要js来运行. 如果真是这样的情况, 就别将它提供给没有js的用户. 向人们解释为什么以及如何做(尽量避免告诉人们他们需需要开启js因为他们可能根本做不了而更加失望), 并利用js重定向到你的应用.

总结

总之, javascript依赖性的问题不只是技术原因. 它对旧的技术实践提出了疑问, 并且对于可维护性有很大影响.

可以说, 如果我们能问问"我们为什么需要js"而不是问"人们为什么没有js", 关于这个问题的讨论会更有成效. 如果我们的技术能很好适应不同需求的话, 去责备人们跟不上网络发展是毫无意义的.

通过展现给用户看他们能通过开启或者关闭浏览器中部件来解决问题同样是没有意义的. 当一个普通用户卡在你的应用中了, 这并不是一个告诉用户发生了什么的做法.

或许所有这些问题在node变得成熟以及普及以后都不会再是问题. 我将很乐意看到这点.

原文链接:That "javascript not available" case

把 ABAP SQL 窗口函数讲透:从 OVER 到 LEAD、RANK 与累计分析 ABAP SQL窗口函数在不丢失明细记录的前提下,为每行数据提供组内统计和排名功能。它通过OVER子句定义计算窗口,支持三类函数:聚合型(AVG/SUM等)、排名型(ROW_NUMBER/RANK等)和取值型(LEAD/LAG)。相比GROUP BY会合并多行数据,窗口函数保留原始记录同时附加计算结果,特别适合需要保留明细又要展示统计信息的业务场景,如销售排名、客户分层分析等。语法核心是OVER子句,通过PARTITION BY分组,ORDER BY排序,可灵活定义计算范围。 阅读详情

相关推荐

企查查爬取实战

实战成果完成接口定位、抓包参数拆解、签名逆向、报错修复全流程调试,梳理出企查查多层风控逻辑;最终按照搜索分页规则,规范整理出两页共 20 条结构化企业数据,以标准 JSON 格式本地保存,字段完整、数据排版规范。现存局限平台顶层设备指纹与人机验证风控,纯 requests 网络请求模式无法突破;高频请求还存在账号限流、IP 访问限制风险,爬虫稳定性受平台策略影响较大。技术收获。

czr2026的博客 1127

javascript被禁用了怎么办

JavaScript是一种脚本编程语言,被广泛应用于网页开发中。它具有简单易学的语法和灵活多样的功能,可以使网页变得动态和交互性更强。JavaScript可以用来控制网页的行为,实现实时更新、用户交互和动态效果等功能,为用户提供更好的网页体验。在网页开发中,JavaScript起到了至关重要的作用。它为开发人员提供了丰富的工具和功能,使他们能够创建出更加吸引人和交互性强的网页。通过JavaScript,开发人员可以实现一些复杂的功能,如表单验证、内容动态加载和动画效果等。

hitpter的专栏 3030

Dify DSL文件分享 Dify讨论群 大模型token资源等(持续收集更新)

基于LLMOps平台-Dify的一站式学习平台。包含不限于:Dify案例、DSL文件分享、模型接入、Dify交流讨论等各类资源分享。

同名公众号:dify实验室 3713

手机浏览器javascript不可用,浏览器禁用js什么意思

因此,浏览器制定了一些安全策略,例如同源策略(Same Origin Policy)来限制JavaScript的权限,防止恶意代码的执行。当网页中包含大量复杂的JavaScript代码时,可能会导致浏览器的性能下降,响应时间变慢。为了提供更好的用户体验,浏览器可能会限制或禁止执行某些JavaScript代码,特别是那些消耗大量计算资源的代码。尽管浏览器可能会限制或禁止JavaScript编程,但在大多数情况下,JavaScript仍然是网页开发的重要组成部分。下面我们将详细探讨一些常见的原因和解决方法。

神经网络爱好者 2100

超详细的YOLOv8安装与测试指南:让计算机视觉任务变得简单

python3+、Anaconda3或Miniconda3 Ultralytics提供了多种安装方法,包括pip、conda和Docker。通过pip包安装最新稳定版的YOLOv8,或者克隆Ultralytics GitHub仓库以获取最新版本。Docker可用于在隔离容器中执行包,避免本地安装。 最简单直接的方式就是直接使用pip方法直接安装。 也可以直接从GitHub仓库安装包。如果你想要最新的开发版本,这可能会很有用。确保你的系统上安装了Git命令行工具

CDBmax的博客 1万+

一文学会Cadence Sigrity PDN仿真——硬件新手小白都能看懂的保姆级教程

电源完整性的仿真,实际上是在仿真以及优化系统中的等效串联电阻。知道了仿真以及优化的目标之后,接下来就是要弄明白这个串联电阻从哪儿来以及怎么优化。整个系统中的串联电阻实际上由三部分组成:没有相位的阻抗,有相位的容抗和感抗,得益于相位,在某个特定的频点,容抗和感抗会大小相等,相位相反而相互抵消,这时候整个系统中就剩下了阻抗,所以整个系统的串联电阻达到了一个最低值,这种现象就是----谐振。当系统处于谐振点时候,整个系统会有一个最小的串联电阻,所以第一个优化电阻的手段就是让谐振来的更频繁一点。

学习帮的博客 2万+

javascript不能运行的解决方法

 页面中的javascript不能运行,可采取以下办法:1).点击“开始”→“运行”,在弹出的“运行”对话框中输入“regsvr32 jscript.dll”(注意输入时没有引号),然后点击“确定”按钮,接着会出现一个信息对话框“DllRegisterServer in regsvr32 jscript.dll succeeded”;在该对话框中点“确定”按钮;  2).再次点击“开始”→“运

terryhuang的专栏 1万+

科研绘图系列:R语言绘制宏基因组分析的可视化图形(network & barplot & heatmap)

科研绘图系列:R语言多图形组合(network & barplot & heatmap)

专注生信领域 643

为什么 JavaScript 代码不执行?

会导致 JavaScript 在 DOM 元素加载前执行,可能会导致找不到需要操作的 DOM 元素。开发者工具的 “Console” 面板中可能会显示错误信息,通常会有详细的错误栈信息,帮助你定位问题。等)如果没有正确处理,可能会导致代码执行的顺序出现问题,进而看起来像是代码没有执行。某些浏览器可能存在与 JavaScript 引擎相关的错误,导致代码无法执行。浏览器可能缓存了旧版本的 JavaScript 文件,导致新代码未被执行。,它可能会影响代码的执行,尤其是在处理表单提交或事件冒泡时。

向着太阳迎着光 2967

[明道云] -基础教学1- 创建第一个工作表:从 0 到实用

明道云工作表相当于数据库表,是存储业务数据的核心组件。创建工作表主要有两种方式:1)从空白新建,通过添加字段(最多200个)、设置属性、配置表单样式;2)从Excel导入,需选择sheet、配置字段映射。创建后系统自动生成默认视图,支持多种视图形式(看板/日历等)。建议设置合适的标题字段和关联关系,初学者可在一小时内完成基础应用搭建。后续可扩展权限控制、工作流自动化等功能。

每日出拳老爷子的博客 556

使用自己的数据跑通mmsegmentation

使用自己的数据跑通mmsegmentation,解决以下报错:1)type object 'FileClient' has no attribute 'infer_client' 2)It is expected output_size equals to 2, but got size 3 3)训练测试结果报NAN 4)KeyError: 'MyDataset is not in the dataset registry' 5)预训练模型和加载的网络结构层名有差异,unexpected key .....

猫猫与橙子的博客 1656

javascript被禁用了怎么办_javascript has been disabled, the form requires ja

除了Google Chrome,还有其他一些支持JavaScript的浏览器可供选择。例如,Mozilla Firefox是一个开源的浏览器,提供了丰富的扩展和插件,能够满足用户各种需求。另外,Safari是苹果公司的浏览器,专为苹果设备设计,也对JavaScript有很好的支持。用户可以按照以下步骤下载和安装Mozilla Firefox和Safari:通过更换浏览器,用户可以解决JavaScript被禁用所带来的问题。选择一个支持JavaScript功能丰富的浏览器,并按照上述步骤下载和安装即可。

2401_87029664的博客 3059

AI:270-基于ASFF改进YOLOv8检测头的多尺度特征融合方法详解与实战

ASFF是一种基于自适应特征融合的策略,能够动态调整不同尺度特征的融合权重,适应场景中不同大小的目标。传统的YOLOv8检测头使用固定的特征融合策略,而ASFF则通过引入学习参数,使得网络能够根据输入图像的特征自适应地选择不同尺度特征的重要性。这一策略对于检测小目标或尺度变化大的目标具有显著优势。本文提出了一种改进YOLOv8检测头的新方法,通过引入自适应空间特征融合模块(ASFF),有效提升了多尺度目标检测的性能,特别是在小目标检测任务中的表现。

一键难忘的博客 3910

Javascript不可用的问题探究

注:本文来源于国外独立的技术博客 昨天在Twitter上的一些有趣的讨论中,我发现人们对于Web应用和站点对Javascript的依赖普遍存在一种疑惑。这种疑惑一直都存在,而对我而言,这个问题随着浏览技术的飞跃发展而集中爆发了。 我第一次遇到这个问题还是在DHTML盛行的时代。我们对浏览器无所不用其极,加上各种动画菜单、3D标签(我们现在已经学会不再使用这些了),但总有人告诉我们Jav

WebAppTrend 1631

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

vue点击按钮之后置成不可用_vue.JS 中怎么设置按钮不可用?

vue.JS 中怎么设置按钮不可用?vue.js 中怎么设置按钮不可用? 下面本篇文章给大家介绍一下. 有一定的参考价值, 有需要的朋友可以参考一下, 希望对大家有所帮助.表单元素有一个 disable 属性, 用来控制该元素是否可用.这个属性在 html 里只有 1 个值, 用法就是 点击 经实测, disable 接受任何属性值, 甚至只要你给标签添加了 disable 的属性, 这个表单元...

weixin_39950083的博客 1796

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

vue点击按钮之后置成不可用_vue.js中怎么设置按钮不可用?

vue.js中怎么设置按钮不可用?下面本篇文章给大家介绍一下。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。表单元素有一个disable属性,用来控制该元素是否可用。这个属性在HTML里只有1个值,用法就是 点击经实测,disable接受任何属性值,甚至只要你给标签添加了disable的属性,这个表单元素就成为不可用状态。换句话说,如果你试图用下面的语句,让按钮成为可用状态,是不...

weixin_39639698的博客 2369

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

js中实现button按钮变灰不可用,可用的方法

1、使button按钮onclick函数失效,按钮变灰,同时光标不显示手型 document.getElementById("commitbtn").onclick = "return false;"; document.getElementById("commitbtn").style.backgroundColor = "gray...

Abracadabra__的博客 2万+

学习如何使用javascript/jquery设置select只读不可用的属性值

学习如何使用javascript/jquery设置select只读不可用的属性值js控制select不可用## jquery控制select不可用js控制select可用## jquery控制select可用 js控制select不可用 <select name="qipa250" id="qipa250"> <option value="1">奇葩</option> <option value="2">奇葩天地网</op

徊忆羽菲 3580

安装node.js后npm不可用

安装node.js后npm不可用 最近要用Vue做项目,依赖node.js,于是按官网下载安装node 下载地址:https://nodejs.org/en/download/ 网上也有很多教程这里就不详细解释了,我遇到的问题是安装完成后, 查看node版本(指令:node -v)是v10.16.0; 查看npm版本(指令:npm -v)光标一直闪好久没反应。 开始以为版本不稳定,重新下载了个低版...

qq_41173321的博客 3869

javascript协议不可用怎么办,什么叫javascript

大家好,小编来为大家解答以下问题,javascript协议不可用怎么办,什么叫javascript,今天让我们一起来看看吧!网络协议指在计算机网络中进行数据交换时建立的规则、标准、约定的集合。

神经网络爱好者 139
上一篇: Python 编码时应该注意的几件事情
下一篇: 十大最有前景网站开发技术
SleepInDelphi
博客等级 码龄19年 32粉丝 388原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值