Tag: JavaScript

我可以重写Javascript函数对象来logging所有函数调用?

我可以重写Function对象的行为,以便我可以在每个函数调用之前注入行为,然后继续正常进行? 具体来说(尽pipe总体思路本身就很有趣),我可以在每次函数调用时都login到控制台,而不必在任何地方插入console.log语句。 然后正常的行为继续? 我确实认识到这可能会有重大的性能问题; 即使在我的开发环境中,我也不打算进行这种运行。 但是,如果它能够正常运行,那么在运行代码上获得1000米的视图就是一个很好的解决scheme。 我怀疑,答案会让我更深入地了解JavaScript。

我是否达到了浏览器中JavaScript对象的大小限制?

我在我的HTML中的<script>标签embedded一个大数组,像这样(毫不奇怪): <script> var largeArray = [/* lots of stuff in here */]; </script> 在这个特定的例子中,数组有210,000个元素。 这远低于2 31的理论最大值 – 4个数量级 。 下面是有趣的部分:如果我将JS的源代码保存到一个文件中,那么这个文件> 44兆字节(准确的说是46,573,399字节)。 如果你想自己看,你可以从GitHub下载 。 (所有的数据都是jar装的,大量的数据都是重复的,生产中不会这样)。 现在,我真的不关心提供这么多的数据。 我的服务器gzip它的响应,所以它真的不需要很长时间才能通过线路获取数据。 然而,页面一旦加载就会使浏览器崩溃 。 我没有在IE中testing(这是一个内部工具)。 我的主要目标是Chrome 8和Firefox 3.6。 在Firefox中,我可以在控制台中看到一个相当有用的错误: Error: script stack space quota is exhausted 在Chrome中,我只是得到了悲伤标签页面: 已经切入了追逐 这对我们现代的“高性能”浏览器来说真的太多了吗? 有什么我可以做*优雅地处理这么多的数据? 顺便说一下,我可以在Chrome中开启和closures此function(请阅读:不会使标签崩溃)。 我真的认为,铬,至less,是由更棘手的东西,但显然我错了… 编辑1 @蜡笔小新:我并不想certificate我为什么要把这么多的数据一次性转储到浏览器中。 简短的版本:要么我解决这个问题(当然不是那么容易),要么解决其他一些问题。 现在我正在select更简单的方法。 @various:现在,我并不特别想find方法来减less数组中元素的数量。 我知道我可以实现Ajax分页或什么是你,但是在其他方面为我介绍了自己的一系列问题。 @Progrog:每个元素看起来像这样: {dateTime:new Date(1296176400000), […]

如何扩展function与ES6类?

ES6允许扩展特殊对象。 所以可以从函数inheritance。 这样的对象可以被称为一个函数,但是我怎样才能实现这种调用的逻辑呢? class Smth extends Function { constructor (x) { // What should be done here super(); } } (new Smth(256))() // to get 256 at this call? 任何类的方法通过this获得对类实例的引用。 但是,当它被称为一个函数, this是指window 。 当它被作为一个函数调用时,如何获得对类实例的引用? PS: 同样的问题在俄罗斯。

如何清除JavaScript文件的HTML文件input?

我想清除我的表单中的文件input。 我知道设置来源相同的方法…但该方法不会抹去所选的文件path。 注意 :我想避免重新加载页面,重置表单或执行AJAX调用。 这可能吗?

上传前检查文件大小

我正在使用这个JavaScript,我从这里得到,它完美地为我所需要的。 var _validFileExtensions = [".jpg", ".jpeg"]; function File_Validator(theForm){ var arrInputs = theForm.getElementsByTagName("input"); for (var i = 0; i < arrInputs.length; i++) { var oInput = arrInputs[i]; if (oInput.type == "file") { var sFileName = oInput.value; var blnValid = false; for (var j = 0; j < _validFileExtensions.length; j++) { var sCurExtension = _validFileExtensions[j]; if (sFileName.substr(sFileName.length […]

通过HTTP在JavaScript中发送二进制数据

我试图发送一个HTTP POST到我的networking上的设备。 我想发送四个特定字节的数据到设备,不幸的是我似乎只能发送string到设备。 反正有使用JavaScript发送原始二进制文件? 这里是我用来做POST的脚本,除非我在数据字段中放入一个string,否则它现在不会运行。 有任何想法吗? (function ($) { $.ajax({ url: '<IP of Address>', type: 'POST', contentType: 'application/octet-stream', //data:'253,0,128,1', data:0xFD008001, crossDomain: true }); })(jQuery);

XMLHttpRequest状态0(responseText为空)

无法使用XMLHttpRequest获取数据(状态0,responseText为空): xmlhttp = new XMLHttpRequest(); xmlhttp.open(“GET”,“http://www.w3schools.com/XML/cd_catalog.xml”,true); xmlhttp.onreadystatechange =()的函数 { 如果(xmlhttp.readyState == 4) alert(“status”+ xmlhttp.status); } xmlhttp.send(); 它提醒“状态0”。 与本地主机请求相同的情况(cd_catalog.xml保存为本地文件) xmlhttp.open(“GET”,“http://localhost/cd_catalog.xml”,true); 但与本地主机IP请求 xmlhttp.open(“GET”,“http://127.0.0.1/cd_catalog.xml”,true); 并与本地文件请求 xmlhttp.open(“GET”,“cd_catalog.xml”,true); 一切正常(状态200) 什么可以导致与在线请求的问题(状态= 0)? PS:Live HTTP Headers显示,在所有情况下,一切正常: HTTP / 1.1 200 OK 内容长度:4742 PS2:VMWare上的Apache本地Web服务器(主机操作系统Win7,客户操作系统Ubuntu,networking适配器 – NAT)。 浏览器 – Firefox。

跨域POST请求不发送Cookie Ajax Jquery

似乎已经在stackoverflow上讨论过类似的东西,但我找不到完全一样的东西。 我试图发送CORS(跨源资源共享)的Cookie,但它不工作。 这是我的代码。 $.ajax( { type: "POST", url: "http://example.com/api/getlist.json", dataType: 'json', xhrFields: { withCredentials: true }, crossDomain: true, beforeSend: function(xhr) { xhr.setRequestHeader("Cookie", "session=xxxyyyzzz"); }, success: function(){ alert('success'); }, error: function (xhr) { alert(xhr.responseText); } } ); 我没有看到这个cookie在请求头。

是否有任何跨浏览器的JavaScript使vh和vw单位的工作

注:好的,当我input这个问题,我遇到了这个问题,build议使用@media query但在2011年被问到… 正如你所知,CSS3引入了新的视口百分比长度单位 , vh和vw ,我觉得这对于一个稳定的响应式布局是非常有用的,所以我的问题是,有没有JavaScript / jQuery替代品? 除了使用字体大小以外,是否可以安全地使用大小调整元素? 像例子 div { height: 6vh; width: 20vh; /* Note am using vh for both, do I need to use vw for width here? */ }

Javascript如何parsingJSON数组

我使用Sencha Touch(ExtJS)从服务器获取JSON消息。 我收到的信息是这样的: { "success": true, "counters": [ { "counter_name": "dsd", "counter_type": "sds", "counter_unit": "sds" }, { "counter_name": "gdg", "counter_type": "dfd", "counter_unit": "ds" }, { "counter_name": "sdsData", "counter_type": "sds", "counter_unit": " dd " }, { "counter_name": "Stoc final", "counter_type": "number ", "counter_unit": "litri " }, { "counter_name": "Consum GPL", "counter_type": "number ", "counter_unit": "litri " […]