小编adj*_*nks的帖子

如何将不同的子域请求重定向到不同的端口

我有两个应用程序,一个是www.myexample.com,另一个是blog.myexample.com.我正在使用PHP和Apache.

现在,我想www.myexample.com在我的机器的端口82和blog.myexample.com同一台机器上的端口83上运行.如何配置apache和/或PHP脚本,以便在正确提供请求请求时?

编辑:感谢所有回复的人,但我担心我不明白这个问题 - 我的坏!

我真正想要的是模拟www.myexample.com和blog.myexample.com位于不同机器上的条件.因此,当请求进入时,网关服务器(也是托管www.myexample.com的服务器)将检查这是对www.myexample.com或blog.myexample.com的请求,并进行必要的重新路由.

这该怎么做?谢谢.

apache

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

使用另一个子类的子类方法,横向转换?

在 Java 中,我得到了一项任务。我可以大致如下描述我的问题:

创建三个类 AB 和 C。

类 A 具有实例变量 j,k,l、setter 和 getter 方法,以及基于它们进行计算的方法 x。

类 B 是 A 的子类,并使用 j,k,l 覆盖具有相同空签名的方法 x。

C 类也是 A 的子类,并且有一个额外的类 y 来处理其他垃圾。

现在,实例化一个类 C 对象,设置它的变量,执行方法 x,然后使用类 B 中方法 x 的覆盖版本。

我的问题是,我该如何做最后一部分?我认为这个问题要么不正确,要么我解释错了。我可以将 C 类对象转换为 B 类对象,然后使用 x() 的 B 类版本吗?我不太了解投射对象以及决定是否可以从一件事投射到另一件事的因素。向上投射可能与“水平/横向”投射一样有损,但我从未听说过后者。如果不让 C 类在内部实例化并从它自己的变量重建 B 类对象,是否不可能在类 C 中使用类 B 中的方法?我说的有道理吗?

附录:

好的。所以兄弟姐妹不能被铸造成彼此?因为 C 和 B 都是“[我的] 对象层次结构的一部分”。我可以转换然后返回到不同的子类吗?就像将猫转换为动物类,然后将动物转换为狗?因为方法 x 依赖于类 A 和类 B 中的实例变量,所以在 C 中创建 B 的新实例将创建一个对象,其字段/变量设置不相同,它们都为零或相似。所以我基本上必须将 j、k 和 l 的每个值复制到 C 类对象中的新 B 类型对象中。这似乎是浪费时间和内存,将对象变量复制到另一个非常相似的对象中。但是就没有其他办法了吗?

第二个附录: …

java casting class

5
推荐指数
1
解决办法
1426
查看次数

JavaScript 中的可撤销代理有什么用?

为什么要撤销代理?您能提供一个实际应用吗Proxy.revocable()

根据MDN Proxy.revocable() 文档,我了解它允许垃圾收集。但是,如果你刚刚删除了 Proxy 对象,不是也允许垃圾回收吗?

附录:如果这个问题有问题,请告诉我它是什么,我很乐意改写或添加其他信息。

@艾米:

我认为这似乎是一个不必要的内置功能,因为我可以像这样创建一个可撤销代理:

function createRevocable(o,handlers){
	var revoked = false
	var handlerWrapper = {
		get(...args){
			if(revoked){
				throw Error('Sorry, this object went poof.')
			}
			if(typeof handlers.get == 'function'){
				return handlers.get(...args)
			}else{
				return Reflect.get(...args)
			}
		}
	}
	var p = new Proxy(o,Object.assign({},handlers,handlerWrapper))
	var r = function(){
		revoked = true
	}
	return {r,p}
}

var a = createRevocable({a:1},{})
var prox = a.p
var revoke = a.r
console.log(prox.a) //1
revoke()
console.log(prox.a)
Run Code Online (Sandbox Code Playgroud)

然而,垃圾收集似乎确实是问题所在,因为我可以撤销对该对象的访问,但无法删除 Proxy 对象内对其的内部引用。除非...

javascript es6-proxy

5
推荐指数
1
解决办法
1630
查看次数

你能在不使用 document.write() 的情况下销毁文档元素和事件监听器吗?

在下面的例子中:

  • 如果您右键单击该文档,它会告诉您它正在收听。
  • 如果您单击 m1,它将替换文档元素,但右键单击该文档仍会通知您它正在侦听。您必须在顶部附近单击鼠标右键,因为该文档没有内容。
  • 如果您单击 m2,它将覆盖文档内容,并且在顶部附近单击鼠标右键不再执行任何操作。检查开发工具中的文档可验证事件处理程序是否已消失。
  • 按下一个按钮后,您必须再次“运行代码片段”以尝试下一个,因为此演示具有破坏性。

有了这些信息。是否有一种不同的方法可以销毁文档并将其替换为新文档,从而在不使用函数的情况下销毁事件处理程序document.write()

document.write()容易出错,“强烈不鼓励”使用它,但我仍然希望能够销毁文档及其事件侦听器。

document.addEventListener('contextmenu', function (e) {
  alert('still listening');
  e.preventDefault();
})

function m1() {
  var doc = document.implementation.createHTMLDocument();
  document.replaceChild(
    document.importNode(doc.documentElement, true),
    document.documentElement
  );
}
function m2() {
  document.close();
  document.write('<html></html>');
}
Run Code Online (Sandbox Code Playgroud)
<button onclick="m1()">m1</button>
<button onclick="m2()">m2</button>
Run Code Online (Sandbox Code Playgroud)

需要明确的是,按钮/函数“m1”未能实现我的目标,因为尽管替换了文档元素,但出于某种原因保留了前一个文档元素的事件处理程序。我想实现 m2 实现的目标,但不使用document.write并且document.close不推荐使用。

附录:

这个问题是为了更好地理解语言和实现它们的引擎的限制。请不要尝试在字里行间阅读或解决某些替代目标。这只是一个事情是否可能的问题。

我不需要知道如何删除事件侦听器或管理事件侦听器,或删除文档的所有子元素。我想知道是否有可能销毁文档元素本身,不留下任何<html>标签,也不留下任何事件侦听器。这是可能的,document.write()但我只是想知道是否有其他方法可以实现这个确切的目标,而不是任何其他假设的目标。

html javascript document.write

5
推荐指数
1
解决办法
371
查看次数

python中的GIL是如何影响网页并行下载的?

我对这个问题背景的理解:

  • GIL 将 python 限制为一次运行一个线程。
  • 由于 GIL,多线程长计算没有用
  • 线程仍然有用
  • 线程可能对 I/O 操作很有用

因此我的问题是:

GIL 将如何影响所请求网页的下载?制作并行网页请求会很好地利用 python 线程吗?因为下载网页是一个 I/O 操作,这是否意味着线程有用?

我会想象一个线程会发出一个请求 > 另一个线程会在某个时候获得控制权并发出自己的请求 > 另一个线程将获得控制权等等。然后数据将开始流入,但是如何处理呢?下载会中断吗?我想我缺乏对操作系统、python 解释器和操作系统的响应处理的低级理解。

python multithreading httpresponse gil

4
推荐指数
1
解决办法
748
查看次数

为什么宿主元素上的伪类必须在宿主函数内部?

我不明白为什么在对主机本身起作用时,像这样的伪类:focus-within需要在:host()函数括号内。为什么不能:host:focus-within div?更奇怪的是它在:host另一个:host().

class MyElementFail extends HTMLElement {

	constructor(...args) {
		super(...args)

		this.attachShadow({mode: 'open'}).innerHTML = `
		<style>
    :host{
      display: block;
      padding: 20px;
      background-color: salmon;
    }
    :host div{
      background-color: white;
    }
    /*This part is different:*/
		:host:focus-within div{
			background-color: green;
		}
		</style>
    <input type="text" value="click in here"/>
		<div>
    Change to green
		</div>`
	}
}
window.customElements.define('my-element-fail', MyElementFail);


class MyElement extends HTMLElement {

	constructor(...args) {
		super(...args)

		this.attachShadow({mode: 'open'}).innerHTML = `
		<style>
    :host{
      display: block;
      padding: 20px; …
Run Code Online (Sandbox Code Playgroud)

html css web-component shadow-dom custom-element

3
推荐指数
1
解决办法
578
查看次数

添加和删​​除带有参数的eventlistener以及访问元素和事件?-Javascript

好的。因此,我了解到有几种方法可以在javascript中管理事件。

  1. 内联,例如 <div id=myid onClick="alert('hi')">-可能您不应该这样做。
  2. 事件处理程序,例如 element.onclick = new Function("myFunc('args')");-据称更好,但不是最好的
  3. 事件监听器,例如 element.addEventListener("click",myFunc,false)-最好的做事方式

因此,可以说我想将参数传递给我的函数。我听说应该通过从这样的函数中调用另一个函数来做到这一点:

myElement.addEventListener("click",function whatever(event){
    myFunk(event,"some argument");
},false);
Run Code Online (Sandbox Code Playgroud)

但是,如果我想删除它,该怎么办?

myElement.removeEventListener("click",whatever,false);

这将在控制台中返回“未定义的内容”错误。那我的函数没有名字吗?“任何”不是它的名字吗?现在如何删除它?

我需要一种方法来分配事件侦听器并将其传递给参数,然后在以后将其清除。我该怎么做呢?

编辑:

好的,是的,我无法引用任何内容,因为它是内联编写的。但是我之所以不得不使用内联函数表达式是因为我想传递给它参数。我想传递参数,因为我不想每次更改行为时都必须定义一个新函数。如果我使用事件处理程序(而不是“侦听器”),则可以轻松换出动作并仍然使用参数:

element.onClick("myFunc('do one thing')");

element.onClick("myFunc('do a different thing')");

使用此函数,我不必定义新函数,只需将myFunc两次传递给不同的参数即可。我该怎么做addEventListener

html javascript event-listener

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

什么是jQuery的$ .when()承诺的香草ES6相当于什么?

对于常规承诺,$ .when()的非jQuery等价物是什么?如果有的话.如果没有,怎么可能实现它?我查看了jQuery 源代码以获得一个想法,它似乎可以管理,但如果已经存在标准实现,我宁愿不自己编写它.

javascript jquery asynchronous es6-promise

0
推荐指数
1
解决办法
46
查看次数