我什么时候应该使用PHP会话与浏览器本地存储与JavaScript对象参数?
什么时候使用现代基于AJAX的应用程序存储数据的多种不同方式?我希望能提供一些我可以提供开发人员的具体准则.这是我到目前为止所看到的,而且越来越混乱. PHP服务器端会话: PHP会话数据可能是存储基于会话信息的最古老方法.我经常通过JavaScript/jQuery对象通过各种AJAX调用来传递参数 - 存储在PHP会话中.我还将数据的对象(某些会话信息)返回,作为响应/结果javascript/jQuery方法. 基于浏览器的本地存储:通常用于存储需要持续在前端的数据,但是我有时不确定使用它.一种很好的用途是存储Navigator.Geolocation的地理位置信息.我一直在这里存储很多信息,但我不确定这是明智的.它似乎永远不会过期,但可以从资源中删除. javaScript对象带有config参数(s):我一直使用init方法构建javascipts对象,以设置"设置"参数.这非常有用,因为我通常是根据PHP传递的数据构建的.使用JQuery Mobile,此数
0 2023-05-30
编程技术问答社区
用CasperJS对网格进行迭代
我正在尝试测试Casperjs,并且正在刮擦一个网站,该网站具有网格布局,例如: |Name |Name | |Title |Title | |Image |Image | |Something |Something | |---------------------- |Name |Name | |Title |Title | |Image |Image | |Something |Something | |---------------------- 如果我不使用casperjs,我会检索所有包含的列表(4 i this情况),然后在每个容器上运行一个方法,该方法可以检索具有通道属性的对象. 我似乎在Casperjs中很难做到这一点.首先,我尝试返回casper.evaluate(function(){....})中的DOM元素列表,但它无法返回DOM元素. 然
0 2023-05-25
编程技术问答社区
用Javascript在大数组中存储数据时的性能问题
我有一个基于浏览器的可视化应用程序,其中有一个数据点图,以作为对象数组存储: data = [ {x: 0.4612451, y: 1.0511} , ... etc ] 此图是用D3可视化并在画布上绘制(有关有趣的讨论,请参见该问题).它是交互式的,秤可能会发生很多变化,这意味着必须重新绘制数据,并且需要经常迭代数组,尤其是在动画变焦时. 从我的脑后和阅读其他JavaScript文章中,我有一个模糊的想法,即优化JavaScript中的dereferes可以导致绩效的重大改进. Firefox是我的应用程序运行速度较慢的唯一浏览器(与IE9,Chrome和Safari相比),需要改进.因此,我想得到一个公司的权威答案: 这慢了多少: // data is an array of 2000 objects with {x, y} attributes var n = data.length; for (var i=0; i
0 2023-05-24
编程技术问答社区
"字典模式 "的优点和缺点
据我所知,使用JavaScript删除对象上的条目时,至少使用Chrome将对象置于"字典模式"或"慢模式" > 示例: var user = { name: 'connor', sex: 'male' }; // user is in "fast mode" delete user.sex; // user is in ("slow" or "dictionary") mode 什么时候可以有益,什么时候有害? 要使用的特定情况是,我有一个对象,当应用程序启动时,对象为空,但是随着代码和应用程​​序内存的构建,它可能会变得很大,并且对象永远不会减少在不存在的应用程序关闭之前的大小为止. 此模式周围还有任何语义吗? 解决方案 据我所知,使用JavaScript删除对象上的条目时,至少使用Chrome将对象置于"字典模式"或"慢模式" > 那不是JavaScript的事情;这是Chrome内部V8引擎的特征实现. [ZenWolf] ...
0 2023-05-23
编程技术问答社区
需要帮助使用VUE解析导入的json数据。JS JavaScript
我需要导入JSON数据并从中汲取特定的内容,并且在此操作困难. 这是示例数据: 我想尝试为每个人拿出名称,描述和教授. 我像这样导入数据: 解决方案 创建computed属性 使用proposedCourses对象属性值 使用 获得name description和professors每个对象的属性. 计算属性将返回: Object.values(this.proposedCourses).map(({ name, description, professors }) => ({ name, description, professors })) 之后,使用v-for迭代computed属性. 在 Vue.config.productionTip = false Vue.config.devtools = false new Vue({ el: '#app', data() { return
4 2023-05-20
编程技术问答社区
如何在JavaScript中取消移位或添加到参数对象的开始部分
我刚刚学会了大会弹出的约定arguments数组(我也学到的实际上是Object).现在我需要相反.我需要使用unshift操作来为arguments数组的开头添加一个值(或Object表现得像数组).这可能吗?我尝试了: Array.prototype.unshift.apply('hello', arguments); 对arguments没有影响. 解决方案 使用.call()而不是.apply() .apply() unshift() set arguments作为unshift() unshift() 的值 set 'hello'作为unshift() 的参数 Array.prototype.unshift.call(arguments, 'hello'); 正如@lonesomeday指出的那样,您可以使用.apply()而不是.call(),但是您需要将类似数组的参数作为第二个参数.因此,就您而言,您需要将'hello'包
0 2023-05-19
编程技术问答社区
在JavaScript/TypeScript中的类型化分组,将JSON嵌套为类型化嵌套数组
我的前端打字稿文件中有此列表: pomonths: 0: {id: 1, companyName: "company14", companyId: 14, flActive: true, purchaseMonth: "2019-12-15T00:00:00", purchaseMonthString: "Dec-2019" , year: 2019, month: "December"} 1: {id: 2, companyName: "company5", companyId: 5, flActive: true, purchaseMonth: "2019-12-15T00:00:00", …} 2: {id: 3, companyName: "company13", companyId: 13, flActive: true, purchaseMonth: "2019-11-15T00:00:00", …} 3: {id: 4, companyName: "compan
0 2023-05-19
编程技术问答社区
用一系列对象在JavaScript中创建分页
如何在JavaScript中创建分页系统?每页应该有10种产品. 我创建了一系列产品.我想循环浏览所有这些产品,并在第一页上浏览前10个产品,然后在下一页上的下10个产品. 我创建了此数组: let products = { data: [ { productName: "Product1", }, { productName: "Product2", }, { productName: "Product3", }, { productName: "Product4", }, { productName: "Product5", }, { multiple other products }, ], }; 我已经通过所有产品
8 2023-05-16
编程技术问答社区
有什么方法可以防止重写单例实例中的函数/变量?
考虑此伪代码: (function(window){ var options = { /*where everything goes */ }; var instance = (function(options){ for (var i in options){ if (options.hasOwnProperty(i)){ this[i] = options[i]; } } })(options); instance.callbacks = function(cb){ //... } instance.is_allowed = function() //... checks, return boolean } window.instance = instance; })(this); 如果有人想操纵此代码(例如,恶意用户),他会使用地
2 2023-05-15
编程技术问答社区
JavaScript的OOP。对象改变它们的原型(对所有使用相同原型的其他对象而言)
function NamedRoundedBlock(){ var name = this.makeFeild("name"); name.className = "Block NamedRound name"; this.element.className = "Block NamedRound root"; this.element.appendChild(name); } NamedRoundedBlock.prototype = new Block(); NamedRoundedBlock.prototype.constructor = NamedRoundedBlock; 有代码,有人知道我做错了什么? 我的问题是,如果我制作两个名为roundededblock对象并更改一个元素的元素(通过更改属性或某物)也会改变. 另外,一些其他细节,this.makeFeild和this.element都设置为block 解决方案 查
0 2023-05-09
编程技术问答社区
JS对象附加的HTML元素
我只是stater一点oojs,但我无法将自己的头围绕一件事,制作一个对象并为HTML元素添加事件. 为了练习,我有一个想法可以进行验证,编辑等... 这是我调用输入并分配HTML对象的方式 var elements = document.querySelectorAll('.input-field'); for (var n = 0; n
6 2023-05-09
编程技术问答社区
John Resig的《简单的Javascript继承》还可以吗?
我已经找到了 http://ejohn.org/blog/simple-javascript-inheritance-javascript-inheritance-inheritance-/这正是我要搜索的东西,但'想知道它是否仍然有效,是否会引起任何问题. 解决方案 许多现代图书馆现在使用经典的继承.它的核心方法是以下(Stoyan Stefanov的JavaScript模式,第127页): function inherit(C, P) { var F = function () {}; F.prototype = P.prototype; C.prototype = new F(); C.uber = P.prototype; C.prototype.constructor = C; } 使用的项目的示例是: Google Cloes
0 2023-05-09
编程技术问答社区
在JavaScript类函数中使用setTimeout()
是否可以在JavaScript对象中使用SettiMout()? 当前,动画方法调用一次运行一次,似乎Settimeout()没有完成其作业.我已经设法使它起作用,但是用一种非常刺耳的方法,即使用Settimeout的班级外部功能.我想让动画循环成为AnimationManager类的工作.如果您可以看到任何不好的练习,或者我出了什么问题..请给我一个人! javascript: var AnimationManager = function(canvas) { this.canvas = canvas; this.canvasWidth = canvas.width(); this.canvasHeight = canvas.height(); this.ctx = canvas.get(0).getContext('2d'); this.running = true; this.start = function st
2 2023-05-09
编程技术问答社区
Javascript:为什么是Object.keys(someobject),而不是someobject.keys?
我经常使用: 获得一系列对象键 Object.keys(someobject) 我很愿意这样做.我知道对象是对象构造函数函数,而keys()是一种方法,并且keys()将返回在给出的任何对象上作为第一个参数的键列表.我的问题不是如何获取对象的钥匙 - 请不要与非解雇者一起解释这一点. 我的问题是,为什么没有更可预测的键()或getKeys()方法,或者在object.protype上可用的键实例变量 ,所以我可以拥有: someobject.keys() 或作为实例变量: someobject.keys 并返回键的数组? 再次,我的目的是了解JavaScript的设计,以及获取钥匙的某种不直觉机制的目的.我不需要帮助钥匙. 解决方案 我想您的问题的答案是"因为委员会决定",但是我已经可以听到您问"为什么?"在这句话结束之前. 我最近阅读了这篇文章,但我现在找不到来源.归结为在许多情况下,无论如何您都必须使用Object.prototy
4 2023-05-09
编程技术问答社区
如何正确设置JavaScript命名空间和类?
似乎有很多方法可以设置JavaScript应用程序,因此令人困惑的是,哪个是正确或最好的.以下技术或更好的方法有什么区别? MyNamespace.MyClass = { someProperty: 5, anotherProperty: false, init: function () { //do initialization }, someFunction: function () { //do something } }; $(function () { MyNamespace.MyClass.init(); }); 另一种方式: MyNamespace.MyClass = (function () { var someProperty = 5; var anotherProperty = false; var init = function (
在保持对象引用和继承的同时组织原型javascript
我已经使用JavaScript原型和继承构建了一个大型应用程序. 但是我很难组织我的代码. 例如,我有一个类似这样的功能的旋转木马: Carousel.prototype.next = function () {...} Carousel.prototype.prev = function () {..} Carousel.prototype.bindControls = function () {..} 我想这样组织我的代码: Carousel.prototype.controls = { next: function () { ... } , prev: function() { ... }, bindControls: function () { .. } } ,但这将导致"此"丢失的价值.我可以使用全局实例跟踪它,但是当类似于另一个文件中,我有类似的东西可以覆盖父母类 ,这将导致问题 BigCarousel.prototype.next
0 2023-05-08
编程技术问答社区
JavaScript��这�� 引用错误的对象
好吧,this并没有真正指错误对象,但是我不知道如何指正确的一个. function someObj() { this.someMethod1 = function() { var elementBtn = document.getElementById('myBtn'); elementBtn.onclick = function() { this.someMethod2(); //I want this.someMethod2() to be called //...but it tries to call elementBtn.someMethod2() i believe. }; }; this.someMethod2 = function() { alert('OK'); }; } 因此,当我的myBtn单击时,我想要someObj.someMethod2()
4 2023-05-08
编程技术问答社区
将包含对象的JSON对象转换成对象数组
我的数据当前以这种格式存储,存储在JSON文件中: { "name": { "0": ______, "1": ______, "2": ______ }, "xcoord": { "0": ______, "1": ______, "2": ______ }, "ycoord": { "0": ______, "1": ______, "2": ______ } } 我需要将其转换为此格式,作为对象数组: [ { "id": 0, "name": _____, "xcoord": _____, "ycoord": _____ }, { "id": 1, "na
10 2023-05-03
编程技术问答社区
Javascript重新格式化或将一个对象数组映射到一个新的对象数组中? 比如重新格式化并为值提供新的键(名称)。
我是阵列和对象的新手,所以我整天都坚持执行此任务,我有一个JSON文件或Array Lang(JavaScript),我也在Stackoverflow上搜索,但也无法很好地理解它们: 在 [ { "date": "1959:01", "1": 138.89, "2": 139.39, "3": 139.74, "4": 139.69, "5": 140.68, "6": 141.17 }, { "date": "1959:07", "1": 141.7, "2": 141.9, "3": 141.01, "4": 140.47, "5": 140.38, "6": 139.95 }, { "date": "1960:01", "1": 139.98, "2": 139.87, "3": 139.75, "4": 139.56, "5": 139.61, "6": 139.58 }, { "date": "1960:07", "1": 140.18, "2": 14
0 2023-05-03
编程技术问答社区