小编Cor*_*son的帖子

如何在jQuery UI Datepicker日历上清除/重置所选日期?

如何重置日期选择器日历值?..最小和最大日期限制?

问题是当我清除日期(通过删除文本框值)时,仍然会应用先前的日期限制.

我一直在整理文档,没有任何东西作为解决方案跳出来.我也无法找到SO /谷歌搜索的快速修复

http://jsfiddle.net/CoryDanielson/tF5MH/


解:

// from & to input textboxes with datepicker enabled
var dates = $("input[id$='dpFrom'], input[id$='dpTo']");

// #clearDates is a button to clear the datepickers
$('#clearDates').on('click', function(){
    dates.attr('value', '');
    dates.each(function(){
        $.datepicker._clearDate(this);
    });
});??
Run Code Online (Sandbox Code Playgroud)

_.clearDate()是DatePicker对象的私有方法.你不会在jQuery UI的网站上的公共API中找到它,但它就像一个魅力.

jquery jquery-ui jquery-ui-datepicker

80
推荐指数
6
解决办法
22万
查看次数

如何在javascript中获取HTML元素的样式值?

我正在寻找一种方法来从样式标签上设置样式的元素中检索样式.

<style> 
#box {width: 100px;}
</style>
Run Code Online (Sandbox Code Playgroud)

在身体里

<div id="box"></div>
Run Code Online (Sandbox Code Playgroud)

我正在寻找没有使用库的直接javascript.

我尝试了以下方法,但继续收到空白:

alert (document.getElementById("box").style.width);  
alert (document.getElementById("box").style.getPropertyValue("width"));
Run Code Online (Sandbox Code Playgroud)

我注意到,如果我使用javascript设置样式,但我无法使用上述样式,但无法使用样式标记.

html javascript css stylesheet

60
推荐指数
3
解决办法
11万
查看次数

Backbone.js内存管理,DOM节点数上升

情况:我正在开发一个相当复杂的单页Backbone应用程序,可能会连续运行8-12个小时.因此,需要确保应用程序不会泄漏并在X小时后崩溃或显着减速.

应用程序:该应用程序基于Backbone(mv*),Zepto(类似于jquery),Curl(amd loader)和Mustache(模板)构建.

问题:我刚刚征服了事件监听器.垃圾收集器似乎在清理这些人员方面做得很好,但DOM Node Count不会停止攀爬.

问题:

  • 是否有正确的方法来处理DOM节点以便它们被正确地垃圾收集,或者这个DOM节点计数是否会永远不会减少?
  • 有没有人知道任何这些框架处理DOM节点?可能是小胡子?
  • DOM节点计数甚至是可靠的数字吗?

我真的只是想在我的冒险中找到一个先机,以阻止这些DOM节点上升.任何帮助或指导将不胜感激(并相应地投票).

我假设一旦事件监听器被妥善处理,DOM节点计数就会自行管理,但事实并非如此.

测试


管理不善的DOM节点数

  • 第一次测试:6.8分钟,110,000个DOM节点

编辑:没有时间轴录制,我重新使用相同的脚本随机混搭链接并在7分钟左右拍摄截图.GC发布后我得到了这些结果.

管理不善的DOM节点数

  • 第二次测试:7.1分钟,141,000个DOM节点(没有时间线记录)

编辑:修复后:

DOM节点计数受控制 升级Backbone并使用listenTo和stopListening到处都是

  • 7分钟:6,926个DOM节点(见下面的标记答案).
  • 20分钟:6,000个DOM节点,20个事件监听器,20 MB内存.
  • 25分钟:11,600个DOM节点,44个监听器,内存21.7 MB.
  • 28分钟:9,000个DOM节点,22个事件监听器,内存21.7 MB.
  • 30分钟:13700个DOM节点,123个事件监听器,内存21.7.
  • 31分钟:7,040个DOM节点,30个监听器,内存21.7.

javascript mustache google-chrome-devtools backbone.js zepto

15
推荐指数
2
解决办法
4406
查看次数

解除内存中HTML元素的内联javascript事件

如何从HTML元素中完全取消绑定内联javascript事件?

我试过了:

  • 从body元素中释放事件
  • 从元素中解除事件的绑定
  • 甚至从HTML元素中删除事件属性

令我惊讶的是,只有删除onchangeattribute(.removeAttr('onchange'))才能阻止事件再次触发.

<input type="text" onchange="validateString(this)"></input>
Run Code Online (Sandbox Code Playgroud)

我知道这对代表来说是可能的,这可能是最好的方式,但只是在这里玩.这个例子纯粹是假设,仅仅是为了提出问题.


所以假设的情况是这样的:

我正在编写一个javascript验证库,它通过内联HTML属性将javascript事件绑定到输入字段,如下所示:

<input type="text" onchange="validateString(this)"></input>
Run Code Online (Sandbox Code Playgroud)

但是,我想通过解除我的事件绑定来使图书馆更好一些,这样在单页面应用程序中使用这个库的人就不必管理我的事件处理程序,这样他们就不必杂乱了.他们的代码完全通过将输入事件连接到我假设的验证库中的函数......无论如何.这些都不是真的,但它似乎是一个不错的用例.

这是假设验证库的"示例"代码.js:

http://jsfiddle.net/CoryDanielson/jwTTf/


要进行测试,只需键入文本框,然后单击其他位置以触发更改事件.在Web时间轴选项卡上打开并记录Web检查器时执行此操作.突出显示时间轴的区域,该区域与您何时触发更改事件(多次触发更改事件)相关,并且您将看到事件侦听器(在下面的窗口中)在每个更改事件上增加100.如果管理和删除正确,在呈现新输入之前将正确删除每个事件侦听器,但我还没有找到一种方法来使用内联javascript事件正确执行此操作.

该代码的作用是:

  1. onChange,input元素触发验证功能
  2. 该函数验证输入并在成功时为边框着色
  3. 然后在1秒后(为了演示内存泄漏)输入元素连续100次替换相同的HTML而不解除更改事件(因为我不知道如何做到这一点......这就是问题所在).这模拟了在单页应用程序中更改视图.这将在DOM中创建100个新的eventListener,通过Web检查器可以看到它们.

    • 有趣的说明.$('input').removeAttr('onchange');实际上会阻止onchange事件在将来被触发,但不会垃圾收集web检查器中可见的eventListener/DOM内容.

此屏幕截图是在更改事件触发3次后.每次使用相同的HTML呈现100个新的DOM节点,并且onchange在替换HTML之前我试图从每个节点解除绑定事件.

在此输入图像描述


更新:我回到这个问题,只是使用JSFiddle做了一个快速的小测试,以确保答案是有效的.我进行了几十次"测试",然后等待 - 确定,GC已经完成并负责业务.

在此输入图像描述

html javascript jquery memory-leaks

10
推荐指数
1
解决办法
1053
查看次数

如何检查 Cypress 是否使用运行模式或开放模式

Cypress 是否有一个我可以获取的变量来确定它是否通过cypress openor运行cypress run

browser testing headless cypress

9
推荐指数
1
解决办法
1895
查看次数

Javascript相当于php mktime

我在php中使用mktime()函数来获取给定年份,月份,日期和分钟的秒数

$seconds = mktime($hour,$minute,$month,$day,$year);
Run Code Online (Sandbox Code Playgroud)

但我想在javascript中使用相同的...任何人都可以建议我在javascript中使用其等效函数的方式,它取得了所有参数并返回秒数...我搜索了很多来源,但没有人给我输出.

javascript

7
推荐指数
2
解决办法
1万
查看次数

cors 子域失败

CORS 对于域和子域无法正常工作。我有一个 NodeJS服务器托管在https://api.example.com我有两个 ReactJS 客户端

客户端 1. https://example.com

客户端 2. https://subdomain.example.com

我已将客户端 1 配置为强制使用 www,以便客户端 1 使用单个源。当我打开 Clien1 时,它工作正常。当我打开 Client2 时,我收到错误消息

CORS 策略阻止了在“ https://api.example.com/someAPI ”处从源“ https://subdomain.example.com ”访问 XMLHttpRequest :“Access-Control-Allow-Origin”标头具有值 ' https://www.example.com ' 不等于提供的来源

当我按 Ctrl+F5 时,它工作正常,但之后如果我刷新 Client1,则错误出现在 Client1

CORS 策略阻止了从源“ https://www.example.com ”访问“ https://api.example.com/someAPI ”处的 XMLHttpRequest :“Access-Control-Allow-Origin”标头具有值 ' https://subdomain.example.com ' 不等于提供的来源。

现在,当我在 Client1 上按 Ctrl+F5 时,它工作正常,但同样的错误会发生在 Client2 上。

我的nodeJS服务器配置如下

var whitelist = ['https://www.example.com', 'https://subdomain.example.com'];
    getCorsCoptions(req, callback) {
    var getOriginValue = () => {
      if (whitelist.indexOf(req.header('origin')) !== -1) {
        return …
Run Code Online (Sandbox Code Playgroud)

node.js cors express reactjs axios

7
推荐指数
1
解决办法
5384
查看次数

React.js传递参数与Router不在URL中

嗨,我想从一个页面移动到另一个页面,并通过参数searchtype.我可以通过URL中没有这些参数的react路由器实现这一点吗?

我正在看这个https://github.com/rackt/react-router/blob/master/docs/guides/overview.md#dynamic-segments和使用的解决方案,<RouteHandler {...this.props}/>但是直到我将params传递给url它才能工作.

那有什么解决方案吗?

编辑1.路线:

<Route name="app" path="/" handler={App}>
    <Route name="realestates" handler={RealEstatesPage}/>
    <Route name="realestatesPrefiltered" path="realestatesPrefiltered/:search/:type" handler=RealEstatesPage}/>
    <Route name="realestate" handler={RealEstateDetails}/>
    <DefaultRoute handler={MainPage}/>
</Route>
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-router

6
推荐指数
1
解决办法
2万
查看次数

在事件队列被阻止时,Node.js服务器是否可以接受传入请求?

所以我刚刚开始深入了解Node,我知道I/O是非阻塞的,并且事件循环是阻塞的,但我想知道的是:

如果您有阻止事件队列的代码,服务器是否仍然能够将传入的请求放在队列的末尾,或者所有这些请求都只是超时/反弹?

blocking node.js

5
推荐指数
2
解决办法
1702
查看次数

福特applink同步错误

我目前正在开发适用于iOS的ford applink sync SDK,我已经下载了Applink Emulator(ALE)v 1.0.2和v 2.4,并尝试使用它运行安装在iPhone 6中的示例应用程序.在设备设置中对ApplinkTester应用程序进行设置以匹配为应用程序指定的Tcp/ip设置并在mac上启动ALE模拟器.

我确实得到连接响应为"true"但是当我在ALE上运行任何命令时它会被"拒绝"或"中止".有什么我想念的东西.请帮助我,因为我被困了一个多星期.

示例应用程序链接:https://developer.ford.com/content/restricted/hello_sdl_ios.zip

ALE帮助:https://developer.ford.com/content/restricted/ALE_v2.4_User_Guide( EN).pdf

ALE下载链接:https://developer.ford.com/content/restricted/ALE_MAC_2.4.zip

日志:带有ale v1.0.2的iphone6:在日志中我获得了连接成功但是当我发送任何命令时它被拒绝或中止.

谢谢.

iphone objective-c ios smartdevicelink

5
推荐指数
0
解决办法
518
查看次数